diff --git a/.eslintignore b/.eslintignore
index 5b7664ac76..2a43251c75 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -13,13 +13,6 @@ website/client/
# Temporarilly disabled. These should be removed when the linting errors are fixed
common/script/content/index.js
-common/script/public/**/*.js
-
-website/server/**/api-v2/**/*.js
-website/server/routes/payments.js
-website/server/routes/pages.js
-website/server/middlewares/apiThrottle.js
-website/server/middlewares/forceRefresh.js
debug-scripts/*
scripts/*
diff --git a/Gruntfile.js b/Gruntfile.js
index 8f716518fe..6b3fb3b2e6 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -131,7 +131,7 @@ module.exports = function(grunt) {
grunt.registerTask('build:test', ['test:prepare:translations', 'build:dev']);
grunt.registerTask('test:prepare:translations', function() {
- var i18n = require('./website/server/libs/api-v3/i18n'),
+ var i18n = require('./website/server/libs/i18n'),
fs = require('fs');
fs.writeFileSync('test/spec/mocks/translations.js',
"if(!window.env) window.env = {};\n" +
diff --git a/common/audio/dewinTheme/Achievement_Unlocked.mp3 b/common/audio/dewinTheme/Achievement_Unlocked.mp3
new file mode 100644
index 0000000000..54b53b6a71
Binary files /dev/null and b/common/audio/dewinTheme/Achievement_Unlocked.mp3 differ
diff --git a/common/audio/dewinTheme/Achievement_Unlocked.ogg b/common/audio/dewinTheme/Achievement_Unlocked.ogg
new file mode 100644
index 0000000000..21ca0d8ca7
Binary files /dev/null and b/common/audio/dewinTheme/Achievement_Unlocked.ogg differ
diff --git a/common/audio/dewinTheme/Boss_Battles_Background_Music.mp3 b/common/audio/dewinTheme/Boss_Battles_Background_Music.mp3
new file mode 100644
index 0000000000..67447214bd
Binary files /dev/null and b/common/audio/dewinTheme/Boss_Battles_Background_Music.mp3 differ
diff --git a/common/audio/dewinTheme/Boss_Battles_Background_Music.ogg b/common/audio/dewinTheme/Boss_Battles_Background_Music.ogg
new file mode 100644
index 0000000000..f2f37dd8f5
Binary files /dev/null and b/common/audio/dewinTheme/Boss_Battles_Background_Music.ogg differ
diff --git a/common/audio/dewinTheme/Chat.mp3 b/common/audio/dewinTheme/Chat.mp3
new file mode 100644
index 0000000000..56bd6fb980
Binary files /dev/null and b/common/audio/dewinTheme/Chat.mp3 differ
diff --git a/common/audio/dewinTheme/Chat.ogg b/common/audio/dewinTheme/Chat.ogg
new file mode 100644
index 0000000000..26b16bf82a
Binary files /dev/null and b/common/audio/dewinTheme/Chat.ogg differ
diff --git a/common/audio/dewinTheme/Checklist_Complete.mp3 b/common/audio/dewinTheme/Checklist_Complete.mp3
new file mode 100644
index 0000000000..0094f44086
Binary files /dev/null and b/common/audio/dewinTheme/Checklist_Complete.mp3 differ
diff --git a/common/audio/dewinTheme/Checklist_Complete.ogg b/common/audio/dewinTheme/Checklist_Complete.ogg
new file mode 100644
index 0000000000..af022c12f6
Binary files /dev/null and b/common/audio/dewinTheme/Checklist_Complete.ogg differ
diff --git a/common/audio/dewinTheme/Daily.mp3 b/common/audio/dewinTheme/Daily.mp3
new file mode 100644
index 0000000000..2729f58039
Binary files /dev/null and b/common/audio/dewinTheme/Daily.mp3 differ
diff --git a/common/audio/dewinTheme/Daily.ogg b/common/audio/dewinTheme/Daily.ogg
new file mode 100644
index 0000000000..a8aa4f0543
Binary files /dev/null and b/common/audio/dewinTheme/Daily.ogg differ
diff --git a/common/audio/dewinTheme/Death.mp3 b/common/audio/dewinTheme/Death.mp3
new file mode 100644
index 0000000000..cc01653a1d
Binary files /dev/null and b/common/audio/dewinTheme/Death.mp3 differ
diff --git a/common/audio/dewinTheme/Death.ogg b/common/audio/dewinTheme/Death.ogg
new file mode 100644
index 0000000000..64899ca388
Binary files /dev/null and b/common/audio/dewinTheme/Death.ogg differ
diff --git a/common/audio/dewinTheme/Item_Drop.mp3 b/common/audio/dewinTheme/Item_Drop.mp3
new file mode 100644
index 0000000000..c63251ebfa
Binary files /dev/null and b/common/audio/dewinTheme/Item_Drop.mp3 differ
diff --git a/common/audio/dewinTheme/Item_Drop.ogg b/common/audio/dewinTheme/Item_Drop.ogg
new file mode 100644
index 0000000000..2dd963af97
Binary files /dev/null and b/common/audio/dewinTheme/Item_Drop.ogg differ
diff --git a/common/audio/dewinTheme/Level_Up.mp3 b/common/audio/dewinTheme/Level_Up.mp3
new file mode 100644
index 0000000000..f2d7fc8df3
Binary files /dev/null and b/common/audio/dewinTheme/Level_Up.mp3 differ
diff --git a/common/audio/dewinTheme/Level_Up.ogg b/common/audio/dewinTheme/Level_Up.ogg
new file mode 100644
index 0000000000..738ecfb03f
Binary files /dev/null and b/common/audio/dewinTheme/Level_Up.ogg differ
diff --git a/common/audio/dewinTheme/Minus_Habit.mp3 b/common/audio/dewinTheme/Minus_Habit.mp3
new file mode 100644
index 0000000000..5adf67258d
Binary files /dev/null and b/common/audio/dewinTheme/Minus_Habit.mp3 differ
diff --git a/common/audio/dewinTheme/Minus_Habit.ogg b/common/audio/dewinTheme/Minus_Habit.ogg
new file mode 100644
index 0000000000..f0f9353a3f
Binary files /dev/null and b/common/audio/dewinTheme/Minus_Habit.ogg differ
diff --git a/common/audio/dewinTheme/Plus_Habit.mp3 b/common/audio/dewinTheme/Plus_Habit.mp3
new file mode 100644
index 0000000000..5051e8f239
Binary files /dev/null and b/common/audio/dewinTheme/Plus_Habit.mp3 differ
diff --git a/common/audio/dewinTheme/Plus_Habit.ogg b/common/audio/dewinTheme/Plus_Habit.ogg
new file mode 100644
index 0000000000..9490713cf5
Binary files /dev/null and b/common/audio/dewinTheme/Plus_Habit.ogg differ
diff --git a/common/audio/dewinTheme/Reward.mp3 b/common/audio/dewinTheme/Reward.mp3
new file mode 100644
index 0000000000..59191060e1
Binary files /dev/null and b/common/audio/dewinTheme/Reward.mp3 differ
diff --git a/common/audio/dewinTheme/Reward.ogg b/common/audio/dewinTheme/Reward.ogg
new file mode 100644
index 0000000000..0598d4f04f
Binary files /dev/null and b/common/audio/dewinTheme/Reward.ogg differ
diff --git a/common/audio/dewinTheme/Settings_Page_Background_Music.mp3 b/common/audio/dewinTheme/Settings_Page_Background_Music.mp3
new file mode 100644
index 0000000000..0e7a83f99c
Binary files /dev/null and b/common/audio/dewinTheme/Settings_Page_Background_Music.mp3 differ
diff --git a/common/audio/dewinTheme/Settings_Page_Background_Music.ogg b/common/audio/dewinTheme/Settings_Page_Background_Music.ogg
new file mode 100644
index 0000000000..f05980858b
Binary files /dev/null and b/common/audio/dewinTheme/Settings_Page_Background_Music.ogg differ
diff --git a/common/audio/dewinTheme/Todo.mp3 b/common/audio/dewinTheme/Todo.mp3
new file mode 100644
index 0000000000..d5082ccd57
Binary files /dev/null and b/common/audio/dewinTheme/Todo.mp3 differ
diff --git a/common/audio/dewinTheme/Todo.ogg b/common/audio/dewinTheme/Todo.ogg
new file mode 100644
index 0000000000..cd173ec50e
Binary files /dev/null and b/common/audio/dewinTheme/Todo.ogg differ
diff --git a/common/css/index.css b/common/css/index.css
index 9f8b87eec9..77e319a37c 100644
--- a/common/css/index.css
+++ b/common/css/index.css
@@ -1,9 +1,9 @@
/* Comment out for holiday events */
-/* .npc_ian {
+.npc_ian {
background: url("/common/img/sprites/npc_ian.gif") no-repeat;
width: 78px;
height: 135px;
-} */
+}
.quest_burnout {
background: url("/common/img/sprites/quest_burnout.gif") no-repeat;
diff --git a/common/dist/sprites/spritesmith-largeSprites-0.css b/common/dist/sprites/spritesmith-largeSprites-0.css
index 8d4b4e8b5d..8a39780a9b 100644
--- a/common/dist/sprites/spritesmith-largeSprites-0.css
+++ b/common/dist/sprites/spritesmith-largeSprites-0.css
@@ -1,24 +1,24 @@
.2014_Fall_HealerPROMO2 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -546px -1378px;
+ background-position: -1001px -1378px;
width: 90px;
height: 90px;
}
.2014_Fall_Mage_PROMO9 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1372px -808px;
+ background-position: -1357px -908px;
width: 120px;
height: 90px;
}
.2014_Fall_RoguePROMO3 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -452px -653px;
+ background-position: -306px -220px;
width: 105px;
height: 90px;
}
.2014_Fall_Warrior_PROMO {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1104px -1275px;
+ background-position: -1295px -1275px;
width: 90px;
height: 90px;
}
@@ -30,13 +30,13 @@
}
.promo_backgrounds_armoire_201602 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1136px -199px;
+ background-position: -994px -199px;
width: 141px;
height: 294px;
}
.promo_backgrounds_armoire_201603 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -994px -199px;
+ background-position: -1136px -199px;
width: 141px;
height: 294px;
}
@@ -64,9 +64,15 @@
width: 139px;
height: 588px;
}
+.promo_backgrounds_armoire_201608 {
+ background-image: url(spritesmith-largeSprites-0.png);
+ background-position: -452px -442px;
+ width: 140px;
+ height: 439px;
+}
.promo_backtoschool {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1493px -302px;
+ background-position: -1493px -151px;
width: 150px;
height: 150px;
}
@@ -78,7 +84,7 @@
}
.promo_chairs_glasses {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -452px -442px;
+ background-position: -452px -882px;
width: 51px;
height: 210px;
}
@@ -96,7 +102,7 @@
}
.promo_dilatoryDistress {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -273px -1378px;
+ background-position: -1113px -1275px;
width: 90px;
height: 90px;
}
@@ -126,7 +132,7 @@
}
.promo_enchanted_armoire_201509 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -455px -1378px;
+ background-position: -182px -1378px;
width: 90px;
height: 90px;
}
@@ -138,7 +144,7 @@
}
.promo_enchanted_armoire_201601 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -831px -1275px;
+ background-position: -364px -1378px;
width: 90px;
height: 90px;
}
@@ -174,13 +180,13 @@
}
.promo_mystery_201405 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1377px -1275px;
+ background-position: -637px -1378px;
width: 90px;
height: 90px;
}
.promo_mystery_201406 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -452px -956px;
+ background-position: 0px -1378px;
width: 90px;
height: 96px;
}
@@ -198,7 +204,7 @@
}
.promo_mystery_201409 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -649px -1275px;
+ background-position: -819px -1378px;
width: 90px;
height: 90px;
}
@@ -210,7 +216,7 @@
}
.promo_mystery_201411 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1013px -1275px;
+ background-position: -910px -1378px;
width: 90px;
height: 90px;
}
@@ -228,13 +234,13 @@
}
.promo_mystery_201502 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -91px -1378px;
+ background-position: -931px -1275px;
width: 90px;
height: 90px;
}
.promo_mystery_201503 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -182px -1378px;
+ background-position: -455px -1378px;
width: 90px;
height: 90px;
}
@@ -246,7 +252,7 @@
}
.promo_mystery_201505 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -364px -1378px;
+ background-position: -273px -1378px;
width: 90px;
height: 90px;
}
@@ -258,31 +264,31 @@
}
.promo_mystery_201507 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -452px -744px;
+ background-position: -306px -417px;
width: 90px;
height: 105px;
}
.promo_mystery_201508 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -306px -220px;
+ background-position: -837px -1275px;
width: 93px;
height: 90px;
}
.promo_mystery_201509 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -740px -1275px;
+ background-position: -1386px -1275px;
width: 90px;
height: 90px;
}
.promo_mystery_201510 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -306px -311px;
+ background-position: -743px -1275px;
width: 93px;
height: 90px;
}
.promo_mystery_201511 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -922px -1275px;
+ background-position: -1204px -1275px;
width: 90px;
height: 90px;
}
@@ -294,40 +300,46 @@
}
.promo_mystery_201601 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1357px -908px;
+ background-position: -1372px -808px;
width: 120px;
height: 90px;
}
.promo_mystery_201602 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1195px -1275px;
+ background-position: -1022px -1275px;
width: 90px;
height: 90px;
}
.promo_mystery_201603 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1286px -1275px;
+ background-position: -728px -1378px;
width: 90px;
height: 90px;
}
.promo_mystery_201604 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -306px -402px;
+ background-position: -649px -1275px;
width: 93px;
height: 90px;
}
.promo_mystery_201605 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: 0px -1378px;
+ background-position: -546px -1378px;
width: 90px;
height: 90px;
}
.promo_mystery_201606 {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -452px -850px;
+ background-position: -306px -311px;
width: 90px;
height: 105px;
}
+.promo_mystery_201607 {
+ background-image: url(spritesmith-largeSprites-0.png);
+ background-position: -91px -1378px;
+ width: 90px;
+ height: 90px;
+}
.promo_mystery_3014 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -250px -1275px;
@@ -360,19 +372,19 @@
}
.promo_peppermint_flame {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1493px -601px;
+ background-position: -1493px -453px;
width: 140px;
height: 147px;
}
.promo_pet_skins {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1493px -453px;
+ background-position: -1493px -601px;
width: 140px;
height: 147px;
}
.customize-option.promo_pet_skins {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1518px -468px;
+ background-position: -1518px -616px;
width: 60px;
height: 60px;
}
@@ -448,6 +460,12 @@
width: 114px;
height: 87px;
}
+.promo_unconventional_armor {
+ background-image: url(spritesmith-largeSprites-0.png);
+ background-position: -886px -327px;
+ width: 60px;
+ height: 60px;
+}
.promo_updos {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1275px -494px;
@@ -498,7 +516,7 @@
}
.scene_coding {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1493px -151px;
+ background-position: -1493px -302px;
width: 150px;
height: 150px;
}
@@ -510,7 +528,7 @@
}
.welcome_basic_avatars {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -994px -642px;
+ background-position: -1241px -642px;
width: 246px;
height: 165px;
}
@@ -522,7 +540,7 @@
}
.welcome_sample_tasks {
background-image: url(spritesmith-largeSprites-0.png);
- background-position: -1241px -642px;
+ background-position: -994px -642px;
width: 246px;
height: 165px;
}
diff --git a/common/dist/sprites/spritesmith-largeSprites-0.png b/common/dist/sprites/spritesmith-largeSprites-0.png
index 795648814a..4bd3ac6982 100644
Binary files a/common/dist/sprites/spritesmith-largeSprites-0.png and b/common/dist/sprites/spritesmith-largeSprites-0.png differ
diff --git a/common/dist/sprites/spritesmith-main-0.css b/common/dist/sprites/spritesmith-main-0.css
index 5ab7384861..773b168007 100644
--- a/common/dist/sprites/spritesmith-main-0.css
+++ b/common/dist/sprites/spritesmith-main-0.css
@@ -1,516 +1,516 @@
.achievement-alien {
background-image: url(spritesmith-main-0.png);
- background-position: -1481px -1419px;
+ background-position: -1350px -1275px;
width: 24px;
height: 26px;
}
.achievement-alien2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1365px -979px;
+ background-position: -1688px -508px;
width: 48px;
height: 52px;
}
.achievement-alpha {
background-image: url(spritesmith-main-0.png);
- background-position: -1456px -1419px;
+ background-position: -1325px -1275px;
width: 24px;
height: 26px;
}
.achievement-armor {
background-image: url(spritesmith-main-0.png);
- background-position: -1390px -1328px;
+ background-position: -1300px -1275px;
width: 24px;
height: 26px;
}
.achievement-armor2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1365px -1070px;
+ background-position: -1688px -561px;
width: 48px;
height: 52px;
}
.achievement-bewilder {
background-image: url(spritesmith-main-0.png);
- background-position: -1390px -1237px;
+ background-position: -1250px -1275px;
width: 24px;
height: 26px;
}
.achievement-bewilder2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1365px -1275px;
+ background-position: -1688px -667px;
width: 48px;
height: 52px;
}
.achievement-birthday {
background-image: url(spritesmith-main-0.png);
- background-position: -1390px -1123px;
+ background-position: -1200px -1275px;
width: 24px;
height: 26px;
}
.achievement-birthday2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1547px -1457px;
+ background-position: -1688px -773px;
width: 48px;
height: 52px;
}
.achievement-boot {
background-image: url(spritesmith-main-0.png);
- background-position: -1390px -1032px;
+ background-position: -1150px -1275px;
width: 24px;
height: 26px;
}
.achievement-boot2x {
background-image: url(spritesmith-main-0.png);
- background-position: -777px -1548px;
+ background-position: -1688px -879px;
width: 48px;
height: 52px;
}
.achievement-bow {
background-image: url(spritesmith-main-0.png);
- background-position: -1390px -941px;
+ background-position: -1100px -1275px;
width: 24px;
height: 26px;
}
.achievement-bow2x {
background-image: url(spritesmith-main-0.png);
- background-position: -875px -1548px;
+ background-position: -1688px -985px;
width: 48px;
height: 52px;
}
.achievement-burnout {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1606px;
+ background-position: -1050px -1275px;
width: 24px;
height: 26px;
}
.achievement-burnout2x {
background-image: url(spritesmith-main-0.png);
- background-position: -973px -1548px;
+ background-position: -1688px -1091px;
width: 48px;
height: 52px;
}
.achievement-cactus {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1552px;
+ background-position: -1000px -1275px;
width: 24px;
height: 26px;
}
.achievement-cactus2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1071px -1548px;
+ background-position: -1688px -1197px;
width: 48px;
height: 52px;
}
.achievement-cake {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1498px;
+ background-position: -950px -1275px;
width: 24px;
height: 26px;
}
.achievement-cake2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1169px -1548px;
+ background-position: -1688px -1303px;
width: 48px;
height: 52px;
}
.achievement-cave {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1444px;
+ background-position: -1464px -1274px;
width: 24px;
height: 26px;
}
.achievement-cave2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1267px -1548px;
+ background-position: -1688px -1409px;
width: 48px;
height: 52px;
}
.achievement-coffin {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1390px;
+ background-position: -1646px -1456px;
width: 24px;
height: 26px;
}
.achievement-comment {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1363px;
+ background-position: -1738px -1568px;
width: 24px;
height: 26px;
}
.achievement-comment2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1365px -1548px;
+ background-position: -1688px -1515px;
width: 48px;
height: 52px;
}
.achievement-costumeContest {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1309px;
+ background-position: -1688px -1568px;
width: 24px;
height: 26px;
}
.achievement-costumeContest2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1463px -1548px;
+ background-position: -1506px -1365px;
width: 48px;
height: 52px;
}
.achievement-dilatory {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1255px;
+ background-position: -1737px -1462px;
width: 24px;
height: 26px;
}
.achievement-firefox {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1228px;
+ background-position: -1737px -1409px;
width: 24px;
height: 26px;
}
.achievement-greeting {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1201px;
+ background-position: -1737px -1356px;
width: 24px;
height: 26px;
}
.achievement-greeting2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1561px -1548px;
+ background-position: -141px -1275px;
width: 48px;
height: 52px;
}
.achievement-habitBirthday {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1147px;
+ background-position: -1737px -1250px;
width: 24px;
height: 26px;
}
.achievement-habitBirthday2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1610px -1548px;
+ background-position: -190px -1275px;
width: 48px;
height: 52px;
}
.achievement-habiticaDay {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1093px;
+ background-position: -1737px -1144px;
width: 24px;
height: 26px;
}
.achievement-habiticaDay2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -53px;
+ background-position: -288px -1275px;
width: 48px;
height: 52px;
}
.achievement-heart {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1039px;
+ background-position: -1737px -1038px;
width: 24px;
height: 26px;
}
.achievement-heart2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -159px;
+ background-position: -386px -1275px;
width: 48px;
height: 52px;
}
.achievement-karaoke-2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -265px;
+ background-position: -484px -1275px;
width: 48px;
height: 52px;
}
.achievement-karaoke {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -958px;
+ background-position: -1737px -879px;
width: 24px;
height: 26px;
}
.achievement-ninja {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -931px;
+ background-position: -1737px -826px;
width: 24px;
height: 26px;
}
.achievement-ninja2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -371px;
+ background-position: -582px -1275px;
width: 48px;
height: 52px;
}
.achievement-nye {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -877px;
+ background-position: -1737px -720px;
width: 24px;
height: 26px;
}
.achievement-nye2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -477px;
+ background-position: -680px -1275px;
width: 48px;
height: 52px;
}
.achievement-partyOn {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -823px;
+ background-position: -1737px -614px;
width: 24px;
height: 26px;
}
.achievement-partyOn2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1365px -888px;
+ background-position: -1688px -455px;
width: 48px;
height: 52px;
}
.achievement-partyUp {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1336px;
+ background-position: -1713px -1568px;
width: 24px;
height: 26px;
}
.achievement-partyUp2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -689px;
+ background-position: -876px -1275px;
width: 48px;
height: 52px;
}
.achievement-perfect {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -769px;
+ background-position: -1737px -508px;
width: 24px;
height: 26px;
}
.achievement-perfect2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -636px;
+ background-position: -827px -1275px;
width: 48px;
height: 52px;
}
.achievement-rat {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -796px;
+ background-position: -1737px -561px;
width: 24px;
height: 26px;
}
.achievement-rat2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -530px;
+ background-position: -729px -1275px;
width: 48px;
height: 52px;
}
.achievement-seafoam {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -850px;
+ background-position: -1737px -667px;
width: 24px;
height: 26px;
}
.achievement-seafoam2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -424px;
+ background-position: -631px -1275px;
width: 48px;
height: 52px;
}
.achievement-shield {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -904px;
+ background-position: -1737px -773px;
width: 24px;
height: 26px;
}
.achievement-shield2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -318px;
+ background-position: -533px -1275px;
width: 48px;
height: 52px;
}
.achievement-shinySeed {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -985px;
+ background-position: -1737px -932px;
width: 24px;
height: 26px;
}
.achievement-shinySeed2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -212px;
+ background-position: -435px -1275px;
width: 48px;
height: 52px;
}
.achievement-snowball {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1012px;
+ background-position: -1737px -985px;
width: 24px;
height: 26px;
}
.achievement-snowball2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -106px;
+ background-position: -337px -1275px;
width: 48px;
height: 52px;
}
.achievement-spookySparkles {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1066px;
+ background-position: -1737px -1091px;
width: 24px;
height: 26px;
}
.achievement-spookySparkles2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px 0px;
+ background-position: -239px -1275px;
width: 48px;
height: 52px;
}
.achievement-stoikalm {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1120px;
+ background-position: -1737px -1197px;
width: 24px;
height: 26px;
}
.achievement-sun {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1174px;
+ background-position: -1737px -1303px;
width: 24px;
height: 26px;
}
.achievement-sun2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1512px -1548px;
+ background-position: -1415px -1274px;
width: 48px;
height: 52px;
}
.achievement-sword {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1282px;
+ background-position: -1737px -1515px;
width: 24px;
height: 26px;
}
.achievement-sword2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1414px -1548px;
+ background-position: -1597px -1456px;
width: 48px;
height: 52px;
}
.achievement-thankyou {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -742px;
+ background-position: -1737px -455px;
width: 24px;
height: 26px;
}
.achievement-thankyou2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1316px -1548px;
+ background-position: -1688px -1462px;
width: 48px;
height: 52px;
}
.achievement-thermometer {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1417px;
+ background-position: -1555px -1365px;
width: 24px;
height: 26px;
}
.achievement-thermometer2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1218px -1548px;
+ background-position: -1688px -1356px;
width: 48px;
height: 52px;
}
.achievement-tree {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1471px;
+ background-position: -925px -1275px;
width: 24px;
height: 26px;
}
.achievement-tree2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1120px -1548px;
+ background-position: -1688px -1250px;
width: 48px;
height: 52px;
}
.achievement-triadbingo {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1525px;
+ background-position: -975px -1275px;
width: 24px;
height: 26px;
}
.achievement-triadbingo2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1022px -1548px;
+ background-position: -1688px -1144px;
width: 48px;
height: 52px;
}
.achievement-ultimate-healer {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -1579px;
+ background-position: -1025px -1275px;
width: 24px;
height: 26px;
}
.achievement-ultimate-healer2x {
background-image: url(spritesmith-main-0.png);
- background-position: -924px -1548px;
+ background-position: -1688px -1038px;
width: 48px;
height: 52px;
}
.achievement-ultimate-mage {
background-image: url(spritesmith-main-0.png);
- background-position: -1365px -941px;
+ background-position: -1075px -1275px;
width: 24px;
height: 26px;
}
.achievement-ultimate-mage2x {
background-image: url(spritesmith-main-0.png);
- background-position: -826px -1548px;
+ background-position: -1688px -932px;
width: 48px;
height: 52px;
}
.achievement-ultimate-rogue {
background-image: url(spritesmith-main-0.png);
- background-position: -1365px -1032px;
+ background-position: -1125px -1275px;
width: 24px;
height: 26px;
}
.achievement-ultimate-rogue2x {
background-image: url(spritesmith-main-0.png);
- background-position: -728px -1548px;
+ background-position: -1688px -826px;
width: 48px;
height: 52px;
}
.achievement-ultimate-warrior {
background-image: url(spritesmith-main-0.png);
- background-position: -1365px -1123px;
+ background-position: -1175px -1275px;
width: 24px;
height: 26px;
}
.achievement-ultimate-warrior2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1456px -1366px;
+ background-position: -1688px -720px;
width: 48px;
height: 52px;
}
.achievement-valentine {
background-image: url(spritesmith-main-0.png);
- background-position: -1365px -1237px;
+ background-position: -1225px -1275px;
width: 24px;
height: 26px;
}
.achievement-valentine2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1365px -1184px;
+ background-position: -1688px -614px;
width: 48px;
height: 52px;
}
.achievement-wolf {
background-image: url(spritesmith-main-0.png);
- background-position: -1365px -1328px;
+ background-position: -1275px -1275px;
width: 24px;
height: 26px;
}
.achievement-wolf2x {
background-image: url(spritesmith-main-0.png);
- background-position: -1688px -583px;
+ background-position: -778px -1275px;
width: 48px;
height: 52px;
}
.background_alpine_slopes {
background-image: url(spritesmith-main-0.png);
- background-position: -564px -740px;
+ background-position: -705px -740px;
width: 140px;
height: 147px;
}
@@ -522,7 +522,7 @@
}
.background_archery_range {
background-image: url(spritesmith-main-0.png);
- background-position: -141px -888px;
+ background-position: -423px -888px;
width: 140px;
height: 147px;
}
@@ -564,13 +564,13 @@
}
.background_clouds {
background-image: url(spritesmith-main-0.png);
- background-position: -992px 0px;
+ background-position: -992px -148px;
width: 140px;
height: 147px;
}
.background_coral_reef {
background-image: url(spritesmith-main-0.png);
- background-position: -992px -592px;
+ background-position: 0px -888px;
width: 140px;
height: 147px;
}
@@ -582,37 +582,37 @@
}
.background_crystal_cave {
background-image: url(spritesmith-main-0.png);
- background-position: -282px -888px;
+ background-position: -564px -888px;
width: 140px;
height: 147px;
}
.background_deep_mine {
background-image: url(spritesmith-main-0.png);
- background-position: -423px -888px;
+ background-position: -705px -888px;
width: 140px;
height: 147px;
}
.background_deep_sea {
background-image: url(spritesmith-main-0.png);
- background-position: -564px -888px;
+ background-position: -846px -888px;
width: 140px;
height: 147px;
}
.background_dilatory_castle {
background-image: url(spritesmith-main-0.png);
- background-position: -987px -1036px;
+ background-position: -1274px -148px;
width: 140px;
height: 147px;
}
.background_dilatory_ruins {
background-image: url(spritesmith-main-0.png);
- background-position: -1274px 0px;
+ background-position: -1274px -444px;
width: 140px;
height: 147px;
}
.background_distant_castle {
background-image: url(spritesmith-main-0.png);
- background-position: -1274px -148px;
+ background-position: -1274px -592px;
width: 140px;
height: 147px;
}
@@ -736,6 +736,12 @@
width: 140px;
height: 147px;
}
+.background_idyllic_cabin {
+ background-image: url(spritesmith-main-0.png);
+ background-position: -564px -740px;
+ width: 140px;
+ height: 147px;
+}
.background_island_waterfalls {
background-image: url(spritesmith-main-0.png);
background-position: -426px -444px;
@@ -744,13 +750,13 @@
}
.background_lighthouse_shore {
background-image: url(spritesmith-main-0.png);
- background-position: -705px -740px;
+ background-position: -846px -740px;
width: 140px;
height: 147px;
}
.background_lilypad {
background-image: url(spritesmith-main-0.png);
- background-position: -846px -740px;
+ background-position: -992px 0px;
width: 140px;
height: 147px;
}
@@ -762,19 +768,25 @@
}
.background_market {
background-image: url(spritesmith-main-0.png);
- background-position: -992px -148px;
+ background-position: -992px -296px;
width: 140px;
height: 147px;
}
.background_mountain_lake {
background-image: url(spritesmith-main-0.png);
- background-position: -992px -296px;
+ background-position: -992px -444px;
+ width: 140px;
+ height: 147px;
+}
+.background_mountain_pyramid {
+ background-image: url(spritesmith-main-0.png);
+ background-position: -992px -592px;
width: 140px;
height: 147px;
}
.background_night_dunes {
background-image: url(spritesmith-main-0.png);
- background-position: -992px -444px;
+ background-position: -992px -740px;
width: 140px;
height: 147px;
}
@@ -786,13 +798,13 @@
}
.background_pagodas {
background-image: url(spritesmith-main-0.png);
- background-position: -992px -740px;
+ background-position: -141px -888px;
width: 140px;
height: 147px;
}
.background_pumpkin_patch {
background-image: url(spritesmith-main-0.png);
- background-position: 0px -888px;
+ background-position: -282px -888px;
width: 140px;
height: 147px;
}
@@ -822,112 +834,118 @@
}
.background_seafarer_ship {
background-image: url(spritesmith-main-0.png);
- background-position: -705px -888px;
+ background-position: -987px -888px;
width: 140px;
height: 147px;
}
.background_shimmery_bubbles {
background-image: url(spritesmith-main-0.png);
- background-position: -846px -888px;
+ background-position: -705px -592px;
width: 140px;
height: 147px;
}
.background_slimy_swamp {
background-image: url(spritesmith-main-0.png);
- background-position: -987px -888px;
+ background-position: -1133px 0px;
width: 140px;
height: 147px;
}
.background_snowman_army {
background-image: url(spritesmith-main-0.png);
- background-position: -1133px 0px;
+ background-position: -1133px -148px;
width: 140px;
height: 147px;
}
.background_snowy_pines {
background-image: url(spritesmith-main-0.png);
- background-position: -1133px -148px;
+ background-position: -1133px -296px;
width: 140px;
height: 147px;
}
.background_snowy_sunrise {
background-image: url(spritesmith-main-0.png);
- background-position: -705px -592px;
+ background-position: -1133px -444px;
width: 140px;
height: 147px;
}
.background_south_pole {
background-image: url(spritesmith-main-0.png);
- background-position: -1133px -296px;
+ background-position: -1133px -592px;
width: 140px;
height: 147px;
}
.background_spring_rain {
background-image: url(spritesmith-main-0.png);
- background-position: -1133px -444px;
+ background-position: -1133px -740px;
width: 140px;
height: 147px;
}
.background_stable {
background-image: url(spritesmith-main-0.png);
- background-position: -1133px -592px;
+ background-position: -1133px -888px;
width: 140px;
height: 147px;
}
.background_stained_glass {
background-image: url(spritesmith-main-0.png);
- background-position: -1133px -740px;
+ background-position: 0px -1036px;
width: 140px;
height: 147px;
}
.background_starry_skies {
background-image: url(spritesmith-main-0.png);
- background-position: -1133px -888px;
+ background-position: -141px -1036px;
width: 140px;
height: 147px;
}
.background_stone_circle {
- background-image: url(spritesmith-main-0.png);
- background-position: 0px -1036px;
- width: 140px;
- height: 147px;
-}
-.background_sunken_ship {
- background-image: url(spritesmith-main-0.png);
- background-position: -141px -1036px;
- width: 140px;
- height: 147px;
-}
-.background_sunset_meadow {
background-image: url(spritesmith-main-0.png);
background-position: -282px -1036px;
width: 140px;
height: 147px;
}
-.background_sunset_oasis {
+.background_stormy_ship {
background-image: url(spritesmith-main-0.png);
background-position: -423px -1036px;
width: 140px;
height: 147px;
}
-.background_sunset_savannah {
+.background_sunken_ship {
background-image: url(spritesmith-main-0.png);
background-position: -564px -1036px;
width: 140px;
height: 147px;
}
-.background_swarming_darkness {
+.background_sunset_meadow {
background-image: url(spritesmith-main-0.png);
background-position: -705px -1036px;
width: 140px;
height: 147px;
}
-.background_tavern {
+.background_sunset_oasis {
background-image: url(spritesmith-main-0.png);
background-position: -846px -1036px;
width: 140px;
height: 147px;
}
+.background_sunset_savannah {
+ background-image: url(spritesmith-main-0.png);
+ background-position: -987px -1036px;
+ width: 140px;
+ height: 147px;
+}
+.background_swarming_darkness {
+ background-image: url(spritesmith-main-0.png);
+ background-position: -1128px -1036px;
+ width: 140px;
+ height: 147px;
+}
+.background_tavern {
+ background-image: url(spritesmith-main-0.png);
+ background-position: -1274px 0px;
+ width: 140px;
+ height: 147px;
+}
.background_thunderstorm {
background-image: url(spritesmith-main-0.png);
background-position: -142px -444px;
@@ -936,7 +954,7 @@
}
.background_tree_roots {
background-image: url(spritesmith-main-0.png);
- background-position: -1128px -1036px;
+ background-position: -1274px -296px;
width: 140px;
height: 147px;
}
@@ -954,1489 +972,1405 @@
}
.background_volcano {
background-image: url(spritesmith-main-0.png);
- background-position: -1274px -296px;
+ background-position: -1274px -740px;
width: 140px;
height: 147px;
}
.background_waterfall_rock {
background-image: url(spritesmith-main-0.png);
- background-position: -1274px -444px;
+ background-position: -1274px -888px;
width: 140px;
height: 147px;
}
.background_winter_night {
background-image: url(spritesmith-main-0.png);
- background-position: -1274px -592px;
+ background-position: -1274px -1036px;
width: 140px;
height: 147px;
}
.background_winter_town {
background-image: url(spritesmith-main-0.png);
- background-position: -1274px -740px;
+ background-position: 0px -1184px;
width: 140px;
height: 147px;
}
.hair_beard_1_TRUred {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -1365px;
+ background-position: -1688px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_TRUred {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -1380px;
+ background-position: -1713px -197px;
width: 60px;
height: 60px;
}
.hair_beard_1_aurora {
background-image: url(spritesmith-main-0.png);
- background-position: -455px -1457px;
+ background-position: -1597px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_aurora {
background-image: url(spritesmith-main-0.png);
- background-position: -480px -1472px;
+ background-position: -1622px -834px;
width: 60px;
height: 60px;
}
.hair_beard_1_black {
background-image: url(spritesmith-main-0.png);
- background-position: -546px -1457px;
+ background-position: -1597px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_black {
background-image: url(spritesmith-main-0.png);
- background-position: -571px -1472px;
+ background-position: -1622px -925px;
width: 60px;
height: 60px;
}
.hair_beard_1_blond {
background-image: url(spritesmith-main-0.png);
- background-position: -637px -1457px;
+ background-position: -1597px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_blond {
background-image: url(spritesmith-main-0.png);
- background-position: -662px -1472px;
+ background-position: -1622px -1016px;
width: 60px;
height: 60px;
}
.hair_beard_1_blue {
background-image: url(spritesmith-main-0.png);
- background-position: -728px -1457px;
+ background-position: -1597px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_blue {
background-image: url(spritesmith-main-0.png);
- background-position: -753px -1472px;
+ background-position: -1622px -1107px;
width: 60px;
height: 60px;
}
.hair_beard_1_brown {
background-image: url(spritesmith-main-0.png);
- background-position: -819px -1457px;
+ background-position: -1597px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_brown {
background-image: url(spritesmith-main-0.png);
- background-position: -844px -1472px;
+ background-position: -1622px -1198px;
width: 60px;
height: 60px;
}
.hair_beard_1_candycane {
background-image: url(spritesmith-main-0.png);
- background-position: -910px -1457px;
+ background-position: -1597px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_candycane {
background-image: url(spritesmith-main-0.png);
- background-position: -935px -1472px;
+ background-position: -1622px -1289px;
width: 60px;
height: 60px;
}
.hair_beard_1_candycorn {
background-image: url(spritesmith-main-0.png);
- background-position: -1001px -1457px;
+ background-position: -1597px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_candycorn {
background-image: url(spritesmith-main-0.png);
- background-position: -1026px -1472px;
+ background-position: -1622px -1380px;
width: 60px;
height: 60px;
}
.hair_beard_1_festive {
background-image: url(spritesmith-main-0.png);
- background-position: -1092px -1457px;
+ background-position: 0px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_festive {
background-image: url(spritesmith-main-0.png);
- background-position: -1117px -1472px;
+ background-position: -25px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_frost {
background-image: url(spritesmith-main-0.png);
- background-position: -1183px -1457px;
+ background-position: -91px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_frost {
background-image: url(spritesmith-main-0.png);
- background-position: -1208px -1472px;
+ background-position: -116px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_ghostwhite {
background-image: url(spritesmith-main-0.png);
- background-position: -1274px -1457px;
+ background-position: -182px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_ghostwhite {
background-image: url(spritesmith-main-0.png);
- background-position: -1299px -1472px;
+ background-position: -207px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_green {
background-image: url(spritesmith-main-0.png);
- background-position: -1365px -1457px;
+ background-position: -273px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_green {
background-image: url(spritesmith-main-0.png);
- background-position: -1390px -1472px;
+ background-position: -298px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_halloween {
background-image: url(spritesmith-main-0.png);
- background-position: -1456px -1457px;
+ background-position: -364px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_halloween {
background-image: url(spritesmith-main-0.png);
- background-position: -1481px -1472px;
+ background-position: -389px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_holly {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px 0px;
+ background-position: -455px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_holly {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -15px;
+ background-position: -480px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_hollygreen {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -91px;
+ background-position: -546px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_hollygreen {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -106px;
+ background-position: -571px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_midnight {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -182px;
+ background-position: -637px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_midnight {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -197px;
+ background-position: -662px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_pblue {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -273px;
+ background-position: -728px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_pblue {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -288px;
+ background-position: -753px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_peppermint {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -364px;
+ background-position: -819px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_peppermint {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -379px;
+ background-position: -844px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_pgreen {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -455px;
+ background-position: -910px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_pgreen {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -470px;
+ background-position: -935px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_porange {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -546px;
+ background-position: -1001px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_porange {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -561px;
+ background-position: -1026px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_ppink {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -637px;
+ background-position: -1092px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_ppink {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -652px;
+ background-position: -1117px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_ppurple {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -728px;
+ background-position: -1183px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_ppurple {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -743px;
+ background-position: -1208px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_pumpkin {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -819px;
+ background-position: -1274px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_pumpkin {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -834px;
+ background-position: -1299px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_purple {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -910px;
+ background-position: -1365px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_purple {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -925px;
+ background-position: -1390px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_pyellow {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -1001px;
+ background-position: -1456px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_pyellow {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -1016px;
+ background-position: -1481px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_rainbow {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -1092px;
+ background-position: -1547px -1514px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_rainbow {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -1107px;
+ background-position: -1572px -1529px;
width: 60px;
height: 60px;
}
.hair_beard_1_red {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -1183px;
+ background-position: -1688px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_red {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -1198px;
+ background-position: -1713px -15px;
width: 60px;
height: 60px;
}
.hair_beard_1_snowy {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -1274px;
+ background-position: -1688px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_snowy {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -1289px;
+ background-position: -1713px -106px;
width: 60px;
height: 60px;
}
.hair_beard_1_white {
background-image: url(spritesmith-main-0.png);
- background-position: -1597px -1456px;
+ background-position: -1688px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_white {
background-image: url(spritesmith-main-0.png);
- background-position: -1622px -1471px;
+ background-position: -1713px -288px;
width: 60px;
height: 60px;
}
.hair_beard_1_winternight {
background-image: url(spritesmith-main-0.png);
- background-position: 0px -1548px;
+ background-position: -1688px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_winternight {
background-image: url(spritesmith-main-0.png);
- background-position: -25px -1563px;
+ background-position: -1713px -379px;
width: 60px;
height: 60px;
}
.hair_beard_1_winterstar {
background-image: url(spritesmith-main-0.png);
- background-position: -91px -1548px;
+ background-position: 0px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_winterstar {
background-image: url(spritesmith-main-0.png);
- background-position: -116px -1563px;
+ background-position: -25px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_1_yellow {
background-image: url(spritesmith-main-0.png);
- background-position: -182px -1548px;
+ background-position: -414px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_yellow {
background-image: url(spritesmith-main-0.png);
- background-position: -207px -1563px;
+ background-position: -439px -1199px;
width: 60px;
height: 60px;
}
.hair_beard_1_zombie {
background-image: url(spritesmith-main-0.png);
- background-position: -273px -1548px;
+ background-position: -323px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_1_zombie {
background-image: url(spritesmith-main-0.png);
- background-position: -298px -1563px;
+ background-position: -348px -1199px;
width: 60px;
height: 60px;
}
.hair_beard_2_TRUred {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -455px;
+ background-position: -1506px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_TRUred {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -470px;
+ background-position: -1531px -1289px;
width: 60px;
height: 60px;
}
.hair_beard_2_aurora {
background-image: url(spritesmith-main-0.png);
- background-position: -364px -1548px;
+ background-position: -232px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_aurora {
background-image: url(spritesmith-main-0.png);
- background-position: -389px -1563px;
+ background-position: -257px -1199px;
width: 60px;
height: 60px;
}
.hair_beard_2_black {
background-image: url(spritesmith-main-0.png);
- background-position: -455px -1548px;
+ background-position: -141px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_black {
background-image: url(spritesmith-main-0.png);
- background-position: -480px -1563px;
+ background-position: -166px -1199px;
width: 60px;
height: 60px;
}
.hair_beard_2_blond {
background-image: url(spritesmith-main-0.png);
- background-position: -546px -1548px;
+ background-position: -1597px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_blond {
background-image: url(spritesmith-main-0.png);
- background-position: -571px -1563px;
+ background-position: -1622px -743px;
width: 60px;
height: 60px;
}
.hair_beard_2_blue {
background-image: url(spritesmith-main-0.png);
- background-position: -637px -1548px;
+ background-position: -1597px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_blue {
background-image: url(spritesmith-main-0.png);
- background-position: -662px -1563px;
+ background-position: -1622px -652px;
width: 60px;
height: 60px;
}
.hair_beard_2_brown {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px 0px;
+ background-position: -1597px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_brown {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -15px;
+ background-position: -1622px -561px;
width: 60px;
height: 60px;
}
.hair_beard_2_candycane {
background-image: url(spritesmith-main-0.png);
- background-position: -273px -1184px;
+ background-position: -1597px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_candycane {
background-image: url(spritesmith-main-0.png);
- background-position: -298px -1199px;
+ background-position: -1622px -470px;
width: 60px;
height: 60px;
}
.hair_beard_2_candycorn {
background-image: url(spritesmith-main-0.png);
- background-position: -182px -1184px;
+ background-position: -1597px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_candycorn {
background-image: url(spritesmith-main-0.png);
- background-position: -207px -1199px;
+ background-position: -1622px -379px;
width: 60px;
height: 60px;
}
.hair_beard_2_festive {
background-image: url(spritesmith-main-0.png);
- background-position: -91px -1184px;
+ background-position: -1597px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_festive {
background-image: url(spritesmith-main-0.png);
- background-position: -116px -1199px;
+ background-position: -1622px -288px;
width: 60px;
height: 60px;
}
.hair_beard_2_frost {
background-image: url(spritesmith-main-0.png);
- background-position: 0px -1184px;
+ background-position: -1597px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_frost {
background-image: url(spritesmith-main-0.png);
- background-position: -25px -1199px;
+ background-position: -1622px -197px;
width: 60px;
height: 60px;
}
.hair_beard_2_ghostwhite {
background-image: url(spritesmith-main-0.png);
- background-position: -1274px -1070px;
+ background-position: -1597px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_ghostwhite {
background-image: url(spritesmith-main-0.png);
- background-position: -1299px -1085px;
+ background-position: -1622px -106px;
width: 60px;
height: 60px;
}
.hair_beard_2_green {
background-image: url(spritesmith-main-0.png);
- background-position: -1274px -979px;
+ background-position: -1597px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_green {
background-image: url(spritesmith-main-0.png);
- background-position: -1299px -994px;
+ background-position: -1622px -15px;
width: 60px;
height: 60px;
}
.hair_beard_2_halloween {
background-image: url(spritesmith-main-0.png);
- background-position: -1274px -888px;
+ background-position: -1456px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_halloween {
background-image: url(spritesmith-main-0.png);
- background-position: -1299px -903px;
+ background-position: -1481px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_holly {
background-image: url(spritesmith-main-0.png);
- background-position: -364px -1457px;
+ background-position: -1365px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_holly {
background-image: url(spritesmith-main-0.png);
- background-position: -389px -1472px;
+ background-position: -1390px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_hollygreen {
background-image: url(spritesmith-main-0.png);
- background-position: -273px -1457px;
+ background-position: -1274px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_hollygreen {
background-image: url(spritesmith-main-0.png);
- background-position: -298px -1472px;
+ background-position: -1299px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_midnight {
background-image: url(spritesmith-main-0.png);
- background-position: -182px -1457px;
+ background-position: -1183px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_midnight {
background-image: url(spritesmith-main-0.png);
- background-position: -207px -1472px;
+ background-position: -1208px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_pblue {
background-image: url(spritesmith-main-0.png);
- background-position: -91px -1457px;
+ background-position: -1092px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_pblue {
background-image: url(spritesmith-main-0.png);
- background-position: -116px -1472px;
+ background-position: -1117px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_peppermint {
background-image: url(spritesmith-main-0.png);
- background-position: 0px -1457px;
+ background-position: -1001px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_peppermint {
background-image: url(spritesmith-main-0.png);
- background-position: -25px -1472px;
+ background-position: -1026px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_pgreen {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -1365px;
+ background-position: -910px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_pgreen {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -1380px;
+ background-position: -935px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_porange {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -1274px;
+ background-position: -819px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_porange {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -1289px;
+ background-position: -844px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_ppink {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -1183px;
+ background-position: -728px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_ppink {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -1198px;
+ background-position: -753px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_ppurple {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -1092px;
+ background-position: -637px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_ppurple {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -1107px;
+ background-position: -662px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_pumpkin {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -1001px;
+ background-position: -546px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_pumpkin {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -1016px;
+ background-position: -571px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_purple {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -910px;
+ background-position: -455px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_purple {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -925px;
+ background-position: -480px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_pyellow {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -819px;
+ background-position: -364px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_pyellow {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -834px;
+ background-position: -389px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_rainbow {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -728px;
+ background-position: -273px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_rainbow {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -743px;
+ background-position: -298px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_red {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -637px;
+ background-position: -182px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_red {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -652px;
+ background-position: -207px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_snowy {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -546px;
+ background-position: -91px -1423px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_snowy {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -561px;
+ background-position: -116px -1438px;
width: 60px;
height: 60px;
}
.hair_beard_2_white {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -364px;
+ background-position: -1506px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_white {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -379px;
+ background-position: -1531px -1198px;
width: 60px;
height: 60px;
}
.hair_beard_2_winternight {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -273px;
+ background-position: -1506px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_winternight {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -288px;
+ background-position: -1531px -1107px;
width: 60px;
height: 60px;
}
.hair_beard_2_winterstar {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -182px;
+ background-position: -1506px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_winterstar {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -197px;
+ background-position: -1531px -1016px;
width: 60px;
height: 60px;
}
.hair_beard_2_yellow {
background-image: url(spritesmith-main-0.png);
- background-position: -1506px -91px;
+ background-position: -1506px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_yellow {
background-image: url(spritesmith-main-0.png);
- background-position: -1531px -106px;
+ background-position: -1531px -925px;
width: 60px;
height: 60px;
}
.hair_beard_2_zombie {
background-image: url(spritesmith-main-0.png);
- background-position: -1365px -1366px;
+ background-position: -1506px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_2_zombie {
background-image: url(spritesmith-main-0.png);
- background-position: -1390px -1381px;
+ background-position: -1531px -834px;
width: 60px;
height: 60px;
}
.hair_beard_3_TRUred {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -182px;
+ background-position: -1415px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_TRUred {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -197px;
+ background-position: -1440px -1016px;
width: 60px;
height: 60px;
}
.hair_beard_3_aurora {
background-image: url(spritesmith-main-0.png);
- background-position: -1274px -1366px;
+ background-position: -1506px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_aurora {
background-image: url(spritesmith-main-0.png);
- background-position: -1299px -1381px;
+ background-position: -1531px -743px;
width: 60px;
height: 60px;
}
.hair_beard_3_black {
background-image: url(spritesmith-main-0.png);
- background-position: -1183px -1366px;
+ background-position: -1506px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_black {
background-image: url(spritesmith-main-0.png);
- background-position: -1208px -1381px;
+ background-position: -1531px -652px;
width: 60px;
height: 60px;
}
.hair_beard_3_blond {
background-image: url(spritesmith-main-0.png);
- background-position: -1092px -1366px;
+ background-position: -1506px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_blond {
background-image: url(spritesmith-main-0.png);
- background-position: -1117px -1381px;
+ background-position: -1531px -561px;
width: 60px;
height: 60px;
}
.hair_beard_3_blue {
background-image: url(spritesmith-main-0.png);
- background-position: -1001px -1366px;
+ background-position: -1506px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_blue {
background-image: url(spritesmith-main-0.png);
- background-position: -1026px -1381px;
+ background-position: -1531px -470px;
width: 60px;
height: 60px;
}
.hair_beard_3_brown {
background-image: url(spritesmith-main-0.png);
- background-position: -910px -1366px;
+ background-position: -1506px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_brown {
background-image: url(spritesmith-main-0.png);
- background-position: -935px -1381px;
+ background-position: -1531px -379px;
width: 60px;
height: 60px;
}
.hair_beard_3_candycane {
background-image: url(spritesmith-main-0.png);
- background-position: -819px -1366px;
+ background-position: -1506px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_candycane {
background-image: url(spritesmith-main-0.png);
- background-position: -844px -1381px;
+ background-position: -1531px -288px;
width: 60px;
height: 60px;
}
.hair_beard_3_candycorn {
background-image: url(spritesmith-main-0.png);
- background-position: -728px -1366px;
+ background-position: -1506px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_candycorn {
background-image: url(spritesmith-main-0.png);
- background-position: -753px -1381px;
+ background-position: -1531px -197px;
width: 60px;
height: 60px;
}
.hair_beard_3_festive {
background-image: url(spritesmith-main-0.png);
- background-position: -637px -1366px;
+ background-position: -1506px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_festive {
background-image: url(spritesmith-main-0.png);
- background-position: -662px -1381px;
+ background-position: -1531px -106px;
width: 60px;
height: 60px;
}
.hair_beard_3_frost {
background-image: url(spritesmith-main-0.png);
- background-position: -546px -1366px;
+ background-position: -1506px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_frost {
background-image: url(spritesmith-main-0.png);
- background-position: -571px -1381px;
+ background-position: -1531px -15px;
width: 60px;
height: 60px;
}
.hair_beard_3_ghostwhite {
background-image: url(spritesmith-main-0.png);
- background-position: -455px -1366px;
+ background-position: -1365px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_ghostwhite {
background-image: url(spritesmith-main-0.png);
- background-position: -480px -1381px;
+ background-position: -1390px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_green {
background-image: url(spritesmith-main-0.png);
- background-position: -364px -1366px;
+ background-position: -1274px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_green {
background-image: url(spritesmith-main-0.png);
- background-position: -389px -1381px;
+ background-position: -1299px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_halloween {
background-image: url(spritesmith-main-0.png);
- background-position: -273px -1366px;
+ background-position: -1183px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_halloween {
background-image: url(spritesmith-main-0.png);
- background-position: -298px -1381px;
+ background-position: -1208px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_holly {
background-image: url(spritesmith-main-0.png);
- background-position: -182px -1366px;
+ background-position: -1092px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_holly {
background-image: url(spritesmith-main-0.png);
- background-position: -207px -1381px;
+ background-position: -1117px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_hollygreen {
background-image: url(spritesmith-main-0.png);
- background-position: -91px -1366px;
+ background-position: -1001px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_hollygreen {
background-image: url(spritesmith-main-0.png);
- background-position: -116px -1381px;
+ background-position: -1026px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_midnight {
background-image: url(spritesmith-main-0.png);
- background-position: 0px -1366px;
+ background-position: -910px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_midnight {
background-image: url(spritesmith-main-0.png);
- background-position: -25px -1381px;
+ background-position: -935px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_pblue {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -1274px;
+ background-position: -819px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_pblue {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -1289px;
+ background-position: -844px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_peppermint {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -1183px;
+ background-position: -728px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_peppermint {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -1198px;
+ background-position: -753px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_pgreen {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -1092px;
+ background-position: -637px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_pgreen {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -1107px;
+ background-position: -662px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_porange {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -1001px;
+ background-position: -546px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_porange {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -1016px;
+ background-position: -571px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_ppink {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -910px;
+ background-position: -455px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_ppink {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -925px;
+ background-position: -480px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_ppurple {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -819px;
+ background-position: -364px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_ppurple {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -834px;
+ background-position: -389px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_pumpkin {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -728px;
+ background-position: -273px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_pumpkin {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -743px;
+ background-position: -298px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_purple {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -637px;
+ background-position: -182px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_purple {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -652px;
+ background-position: -207px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_pyellow {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -546px;
+ background-position: -91px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_pyellow {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -561px;
+ background-position: -116px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_rainbow {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -455px;
+ background-position: 0px -1332px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_rainbow {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -470px;
+ background-position: -25px -1347px;
width: 60px;
height: 60px;
}
.hair_beard_3_red {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -364px;
+ background-position: -1415px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_red {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -379px;
+ background-position: -1440px -1198px;
width: 60px;
height: 60px;
}
.hair_beard_3_snowy {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -273px;
+ background-position: -1415px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_snowy {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -288px;
+ background-position: -1440px -1107px;
width: 60px;
height: 60px;
}
.hair_beard_3_white {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px -91px;
+ background-position: -1415px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_white {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -106px;
+ background-position: -1440px -925px;
width: 60px;
height: 60px;
}
.hair_beard_3_winternight {
background-image: url(spritesmith-main-0.png);
- background-position: -1415px 0px;
+ background-position: -1415px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_winternight {
background-image: url(spritesmith-main-0.png);
- background-position: -1440px -15px;
+ background-position: -1440px -834px;
width: 60px;
height: 60px;
}
.hair_beard_3_winterstar {
background-image: url(spritesmith-main-0.png);
- background-position: -1274px -1275px;
+ background-position: -1415px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_winterstar {
background-image: url(spritesmith-main-0.png);
- background-position: -1299px -1290px;
+ background-position: -1440px -743px;
width: 60px;
height: 60px;
}
.hair_beard_3_yellow {
background-image: url(spritesmith-main-0.png);
- background-position: -1183px -1275px;
+ background-position: -1415px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_yellow {
background-image: url(spritesmith-main-0.png);
- background-position: -1208px -1290px;
+ background-position: -1440px -652px;
width: 60px;
height: 60px;
}
.hair_beard_3_zombie {
background-image: url(spritesmith-main-0.png);
- background-position: -1092px -1275px;
+ background-position: -1415px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_beard_3_zombie {
background-image: url(spritesmith-main-0.png);
- background-position: -1117px -1290px;
+ background-position: -1440px -561px;
width: 60px;
height: 60px;
}
.hair_mustache_1_aurora {
background-image: url(spritesmith-main-0.png);
- background-position: -1001px -1275px;
+ background-position: -1415px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_aurora {
background-image: url(spritesmith-main-0.png);
- background-position: -1026px -1290px;
+ background-position: -1440px -470px;
width: 60px;
height: 60px;
}
.hair_mustache_1_black {
background-image: url(spritesmith-main-0.png);
- background-position: -910px -1275px;
+ background-position: -1415px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_black {
background-image: url(spritesmith-main-0.png);
- background-position: -935px -1290px;
+ background-position: -1440px -379px;
width: 60px;
height: 60px;
}
.hair_mustache_1_blond {
background-image: url(spritesmith-main-0.png);
- background-position: -819px -1275px;
+ background-position: -1415px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_blond {
background-image: url(spritesmith-main-0.png);
- background-position: -844px -1290px;
+ background-position: -1440px -288px;
width: 60px;
height: 60px;
}
.hair_mustache_1_blue {
background-image: url(spritesmith-main-0.png);
- background-position: -728px -1275px;
+ background-position: -1415px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_blue {
background-image: url(spritesmith-main-0.png);
- background-position: -753px -1290px;
+ background-position: -1440px -197px;
width: 60px;
height: 60px;
}
.hair_mustache_1_brown {
background-image: url(spritesmith-main-0.png);
- background-position: -637px -1275px;
+ background-position: -1415px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_brown {
background-image: url(spritesmith-main-0.png);
- background-position: -662px -1290px;
+ background-position: -1440px -106px;
width: 60px;
height: 60px;
}
.hair_mustache_1_candycane {
background-image: url(spritesmith-main-0.png);
- background-position: -546px -1275px;
+ background-position: -1415px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_candycane {
background-image: url(spritesmith-main-0.png);
- background-position: -571px -1290px;
+ background-position: -1440px -15px;
width: 60px;
height: 60px;
}
.hair_mustache_1_candycorn {
background-image: url(spritesmith-main-0.png);
- background-position: -455px -1275px;
+ background-position: -1324px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_candycorn {
background-image: url(spritesmith-main-0.png);
- background-position: -480px -1290px;
+ background-position: -1349px -1199px;
width: 60px;
height: 60px;
}
.hair_mustache_1_festive {
background-image: url(spritesmith-main-0.png);
- background-position: -364px -1275px;
+ background-position: -1233px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_festive {
background-image: url(spritesmith-main-0.png);
- background-position: -389px -1290px;
+ background-position: -1258px -1199px;
width: 60px;
height: 60px;
}
.hair_mustache_1_frost {
background-image: url(spritesmith-main-0.png);
- background-position: -273px -1275px;
+ background-position: -1142px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_frost {
background-image: url(spritesmith-main-0.png);
- background-position: -298px -1290px;
+ background-position: -1167px -1199px;
width: 60px;
height: 60px;
}
.hair_mustache_1_ghostwhite {
background-image: url(spritesmith-main-0.png);
- background-position: -182px -1275px;
+ background-position: -1051px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_ghostwhite {
background-image: url(spritesmith-main-0.png);
- background-position: -207px -1290px;
+ background-position: -1076px -1199px;
width: 60px;
height: 60px;
}
.hair_mustache_1_green {
background-image: url(spritesmith-main-0.png);
- background-position: -91px -1275px;
+ background-position: -960px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_green {
background-image: url(spritesmith-main-0.png);
- background-position: -116px -1290px;
+ background-position: -985px -1199px;
width: 60px;
height: 60px;
}
.hair_mustache_1_halloween {
background-image: url(spritesmith-main-0.png);
- background-position: 0px -1275px;
+ background-position: -869px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_halloween {
background-image: url(spritesmith-main-0.png);
- background-position: -25px -1290px;
+ background-position: -894px -1199px;
width: 60px;
height: 60px;
}
.hair_mustache_1_holly {
background-image: url(spritesmith-main-0.png);
- background-position: -1274px -1184px;
+ background-position: -778px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_holly {
background-image: url(spritesmith-main-0.png);
- background-position: -1299px -1199px;
+ background-position: -803px -1199px;
width: 60px;
height: 60px;
}
.hair_mustache_1_hollygreen {
background-image: url(spritesmith-main-0.png);
- background-position: -1183px -1184px;
+ background-position: -687px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_hollygreen {
background-image: url(spritesmith-main-0.png);
- background-position: -1208px -1199px;
+ background-position: -712px -1199px;
width: 60px;
height: 60px;
}
.hair_mustache_1_midnight {
background-image: url(spritesmith-main-0.png);
- background-position: -1092px -1184px;
+ background-position: -596px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_midnight {
background-image: url(spritesmith-main-0.png);
- background-position: -1117px -1199px;
+ background-position: -621px -1199px;
width: 60px;
height: 60px;
}
.hair_mustache_1_pblue {
background-image: url(spritesmith-main-0.png);
- background-position: -1001px -1184px;
+ background-position: -505px -1184px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_pblue {
background-image: url(spritesmith-main-0.png);
- background-position: -1026px -1199px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_peppermint {
- background-image: url(spritesmith-main-0.png);
- background-position: -910px -1184px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_peppermint {
- background-image: url(spritesmith-main-0.png);
- background-position: -935px -1199px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_pgreen {
- background-image: url(spritesmith-main-0.png);
- background-position: -819px -1184px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_pgreen {
- background-image: url(spritesmith-main-0.png);
- background-position: -844px -1199px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_porange {
- background-image: url(spritesmith-main-0.png);
- background-position: -728px -1184px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_porange {
- background-image: url(spritesmith-main-0.png);
- background-position: -753px -1199px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_ppink {
- background-image: url(spritesmith-main-0.png);
- background-position: -637px -1184px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_ppink {
- background-image: url(spritesmith-main-0.png);
- background-position: -662px -1199px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_ppurple {
- background-image: url(spritesmith-main-0.png);
- background-position: -546px -1184px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_ppurple {
- background-image: url(spritesmith-main-0.png);
- background-position: -571px -1199px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_pumpkin {
- background-image: url(spritesmith-main-0.png);
- background-position: -455px -1184px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_pumpkin {
- background-image: url(spritesmith-main-0.png);
- background-position: -480px -1199px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_purple {
- background-image: url(spritesmith-main-0.png);
- background-position: -364px -1184px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_purple {
- background-image: url(spritesmith-main-0.png);
- background-position: -389px -1199px;
+ background-position: -530px -1199px;
width: 60px;
height: 60px;
}
diff --git a/common/dist/sprites/spritesmith-main-0.png b/common/dist/sprites/spritesmith-main-0.png
index 79bf02013f..8c63600322 100644
Binary files a/common/dist/sprites/spritesmith-main-0.png and b/common/dist/sprites/spritesmith-main-0.png differ
diff --git a/common/dist/sprites/spritesmith-main-1.css b/common/dist/sprites/spritesmith-main-1.css
index 3ad1e3eed8..ba310bb302 100644
--- a/common/dist/sprites/spritesmith-main-1.css
+++ b/common/dist/sprites/spritesmith-main-1.css
@@ -1,519 +1,603 @@
.hair_mustache_1_TRUred {
- background-image: url(spritesmith-main-1.png);
- background-position: -182px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_TRUred {
- background-image: url(spritesmith-main-1.png);
- background-position: -207px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_pyellow {
- background-image: url(spritesmith-main-1.png);
- background-position: -91px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_pyellow {
- background-image: url(spritesmith-main-1.png);
- background-position: -116px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_rainbow {
- background-image: url(spritesmith-main-1.png);
- background-position: -910px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_rainbow {
- background-image: url(spritesmith-main-1.png);
- background-position: -935px -1107px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_red {
- background-image: url(spritesmith-main-1.png);
- background-position: 0px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_red {
- background-image: url(spritesmith-main-1.png);
- background-position: -25px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_snowy {
- background-image: url(spritesmith-main-1.png);
- background-position: -91px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_snowy {
- background-image: url(spritesmith-main-1.png);
- background-position: -116px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_white {
- background-image: url(spritesmith-main-1.png);
- background-position: -182px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_white {
- background-image: url(spritesmith-main-1.png);
- background-position: -207px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_winternight {
- background-image: url(spritesmith-main-1.png);
- background-position: 0px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_winternight {
- background-image: url(spritesmith-main-1.png);
- background-position: -25px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_winterstar {
- background-image: url(spritesmith-main-1.png);
- background-position: -91px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_winterstar {
- background-image: url(spritesmith-main-1.png);
- background-position: -116px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_yellow {
- background-image: url(spritesmith-main-1.png);
- background-position: -182px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_yellow {
- background-image: url(spritesmith-main-1.png);
- background-position: -207px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_zombie {
- background-image: url(spritesmith-main-1.png);
- background-position: -273px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_zombie {
- background-image: url(spritesmith-main-1.png);
- background-position: -298px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_2_TRUred {
- background-image: url(spritesmith-main-1.png);
- background-position: -546px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_2_TRUred {
- background-image: url(spritesmith-main-1.png);
- background-position: -571px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_2_aurora {
- background-image: url(spritesmith-main-1.png);
- background-position: -273px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_2_aurora {
- background-image: url(spritesmith-main-1.png);
- background-position: -298px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_2_black {
background-image: url(spritesmith-main-1.png);
background-position: -273px -182px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_black {
+.customize-option.hair_mustache_1_TRUred {
background-image: url(spritesmith-main-1.png);
background-position: -298px -197px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_blond {
+.hair_mustache_1_peppermint {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -91px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_peppermint {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -116px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_pgreen {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -910px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_pgreen {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -935px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_porange {
+ background-image: url(spritesmith-main-1.png);
+ background-position: 0px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_porange {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -25px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_ppink {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -91px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_ppink {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -116px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_ppurple {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -182px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_ppurple {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -207px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_pumpkin {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -182px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_pumpkin {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -207px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_purple {
+ background-image: url(spritesmith-main-1.png);
+ background-position: 0px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_purple {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -25px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_pyellow {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -91px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_pyellow {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -116px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_rainbow {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -182px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_rainbow {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -207px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_red {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -273px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_red {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -298px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_snowy {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -273px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_snowy {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -298px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_white {
background-image: url(spritesmith-main-1.png);
background-position: 0px -273px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_blond {
+.customize-option.hair_mustache_1_white {
background-image: url(spritesmith-main-1.png);
background-position: -25px -288px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_blue {
+.hair_mustache_1_winternight {
background-image: url(spritesmith-main-1.png);
background-position: -91px -273px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_blue {
+.customize-option.hair_mustache_1_winternight {
background-image: url(spritesmith-main-1.png);
background-position: -116px -288px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_brown {
+.hair_mustache_1_winterstar {
background-image: url(spritesmith-main-1.png);
background-position: -182px -273px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_brown {
+.customize-option.hair_mustache_1_winterstar {
background-image: url(spritesmith-main-1.png);
background-position: -207px -288px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_candycane {
+.hair_mustache_1_yellow {
background-image: url(spritesmith-main-1.png);
background-position: -273px -273px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_candycane {
+.customize-option.hair_mustache_1_yellow {
background-image: url(spritesmith-main-1.png);
background-position: -298px -288px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_candycorn {
+.hair_mustache_1_zombie {
background-image: url(spritesmith-main-1.png);
background-position: -364px 0px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_candycorn {
+.customize-option.hair_mustache_1_zombie {
background-image: url(spritesmith-main-1.png);
background-position: -389px -15px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_festive {
+.hair_mustache_2_TRUred {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -182px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_TRUred {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -207px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_2_aurora {
background-image: url(spritesmith-main-1.png);
background-position: -364px -91px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_festive {
+.customize-option.hair_mustache_2_aurora {
background-image: url(spritesmith-main-1.png);
background-position: -389px -106px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_frost {
+.hair_mustache_2_black {
background-image: url(spritesmith-main-1.png);
background-position: -364px -182px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_frost {
+.customize-option.hair_mustache_2_black {
background-image: url(spritesmith-main-1.png);
background-position: -389px -197px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_ghostwhite {
+.hair_mustache_2_blond {
background-image: url(spritesmith-main-1.png);
background-position: -364px -273px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_ghostwhite {
+.customize-option.hair_mustache_2_blond {
background-image: url(spritesmith-main-1.png);
background-position: -389px -288px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_green {
+.hair_mustache_2_blue {
background-image: url(spritesmith-main-1.png);
background-position: 0px -364px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_green {
+.customize-option.hair_mustache_2_blue {
background-image: url(spritesmith-main-1.png);
background-position: -25px -379px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_halloween {
+.hair_mustache_2_brown {
background-image: url(spritesmith-main-1.png);
background-position: -91px -364px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_halloween {
+.customize-option.hair_mustache_2_brown {
background-image: url(spritesmith-main-1.png);
background-position: -116px -379px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_holly {
+.hair_mustache_2_candycane {
background-image: url(spritesmith-main-1.png);
background-position: -182px -364px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_holly {
+.customize-option.hair_mustache_2_candycane {
background-image: url(spritesmith-main-1.png);
background-position: -207px -379px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_hollygreen {
+.hair_mustache_2_candycorn {
background-image: url(spritesmith-main-1.png);
background-position: -273px -364px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_hollygreen {
+.customize-option.hair_mustache_2_candycorn {
background-image: url(spritesmith-main-1.png);
background-position: -298px -379px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_midnight {
+.hair_mustache_2_festive {
background-image: url(spritesmith-main-1.png);
background-position: -364px -364px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_midnight {
+.customize-option.hair_mustache_2_festive {
background-image: url(spritesmith-main-1.png);
background-position: -389px -379px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_pblue {
+.hair_mustache_2_frost {
background-image: url(spritesmith-main-1.png);
background-position: -455px 0px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_pblue {
+.customize-option.hair_mustache_2_frost {
background-image: url(spritesmith-main-1.png);
background-position: -480px -15px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_peppermint {
+.hair_mustache_2_ghostwhite {
background-image: url(spritesmith-main-1.png);
background-position: -455px -91px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_peppermint {
+.customize-option.hair_mustache_2_ghostwhite {
background-image: url(spritesmith-main-1.png);
background-position: -480px -106px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_pgreen {
+.hair_mustache_2_green {
background-image: url(spritesmith-main-1.png);
background-position: -455px -182px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_pgreen {
+.customize-option.hair_mustache_2_green {
background-image: url(spritesmith-main-1.png);
background-position: -480px -197px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_porange {
+.hair_mustache_2_halloween {
background-image: url(spritesmith-main-1.png);
background-position: -455px -273px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_porange {
+.customize-option.hair_mustache_2_halloween {
background-image: url(spritesmith-main-1.png);
background-position: -480px -288px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_ppink {
+.hair_mustache_2_holly {
background-image: url(spritesmith-main-1.png);
background-position: -455px -364px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_ppink {
+.customize-option.hair_mustache_2_holly {
background-image: url(spritesmith-main-1.png);
background-position: -480px -379px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_ppurple {
+.hair_mustache_2_hollygreen {
background-image: url(spritesmith-main-1.png);
background-position: 0px -455px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_ppurple {
+.customize-option.hair_mustache_2_hollygreen {
background-image: url(spritesmith-main-1.png);
background-position: -25px -470px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_pumpkin {
+.hair_mustache_2_midnight {
background-image: url(spritesmith-main-1.png);
background-position: -91px -455px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_pumpkin {
+.customize-option.hair_mustache_2_midnight {
background-image: url(spritesmith-main-1.png);
background-position: -116px -470px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_purple {
+.hair_mustache_2_pblue {
background-image: url(spritesmith-main-1.png);
background-position: -182px -455px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_purple {
+.customize-option.hair_mustache_2_pblue {
background-image: url(spritesmith-main-1.png);
background-position: -207px -470px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_pyellow {
+.hair_mustache_2_peppermint {
background-image: url(spritesmith-main-1.png);
background-position: -273px -455px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_pyellow {
+.customize-option.hair_mustache_2_peppermint {
background-image: url(spritesmith-main-1.png);
background-position: -298px -470px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_rainbow {
+.hair_mustache_2_pgreen {
background-image: url(spritesmith-main-1.png);
background-position: -364px -455px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_rainbow {
+.customize-option.hair_mustache_2_pgreen {
background-image: url(spritesmith-main-1.png);
background-position: -389px -470px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_red {
+.hair_mustache_2_porange {
background-image: url(spritesmith-main-1.png);
background-position: -455px -455px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_red {
+.customize-option.hair_mustache_2_porange {
background-image: url(spritesmith-main-1.png);
background-position: -480px -470px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_snowy {
+.hair_mustache_2_ppink {
background-image: url(spritesmith-main-1.png);
background-position: -546px 0px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_snowy {
+.customize-option.hair_mustache_2_ppink {
background-image: url(spritesmith-main-1.png);
background-position: -571px -15px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_white {
+.hair_mustache_2_ppurple {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -546px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_ppurple {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -571px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_2_pumpkin {
background-image: url(spritesmith-main-1.png);
background-position: -546px -182px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_white {
+.customize-option.hair_mustache_2_pumpkin {
background-image: url(spritesmith-main-1.png);
background-position: -571px -197px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_winternight {
+.hair_mustache_2_purple {
background-image: url(spritesmith-main-1.png);
background-position: -546px -273px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_winternight {
+.customize-option.hair_mustache_2_purple {
background-image: url(spritesmith-main-1.png);
background-position: -571px -288px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_winterstar {
+.hair_mustache_2_pyellow {
background-image: url(spritesmith-main-1.png);
background-position: -546px -364px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_winterstar {
+.customize-option.hair_mustache_2_pyellow {
background-image: url(spritesmith-main-1.png);
background-position: -571px -379px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_yellow {
+.hair_mustache_2_rainbow {
background-image: url(spritesmith-main-1.png);
background-position: -546px -455px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_yellow {
+.customize-option.hair_mustache_2_rainbow {
background-image: url(spritesmith-main-1.png);
background-position: -571px -470px;
width: 60px;
height: 60px;
}
-.hair_mustache_2_zombie {
+.hair_mustache_2_red {
background-image: url(spritesmith-main-1.png);
background-position: 0px -546px;
width: 90px;
height: 90px;
}
-.customize-option.hair_mustache_2_zombie {
+.customize-option.hair_mustache_2_red {
background-image: url(spritesmith-main-1.png);
background-position: -25px -561px;
width: 60px;
height: 60px;
}
+.hair_mustache_2_snowy {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -91px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_snowy {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -116px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_2_white {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -273px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_white {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -298px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_2_winternight {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -364px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_winternight {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -389px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_2_winterstar {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -455px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_winterstar {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -480px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_2_yellow {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -546px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_yellow {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -571px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_2_zombie {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -637px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_zombie {
+ background-image: url(spritesmith-main-1.png);
+ background-position: -662px -15px;
+ width: 60px;
+ height: 60px;
+}
.button_chair_black {
background-image: url(spritesmith-main-1.png);
background-position: -1638px -487px;
@@ -552,2891 +636,2807 @@
}
.chair_black {
background-image: url(spritesmith-main-1.png);
- background-position: -637px 0px;
+ background-position: 0px -637px;
width: 90px;
height: 90px;
}
.chair_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -91px;
+ background-position: -91px -637px;
width: 90px;
height: 90px;
}
.chair_green {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -182px;
+ background-position: -182px -637px;
width: 90px;
height: 90px;
}
.chair_pink {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -273px;
+ background-position: -273px -637px;
width: 90px;
height: 90px;
}
.chair_red {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -364px;
+ background-position: -364px -637px;
width: 90px;
height: 90px;
}
.chair_yellow {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -455px;
+ background-position: -455px -637px;
width: 90px;
height: 90px;
}
.hair_flower_1 {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -546px;
+ background-position: -546px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_flower_1 {
background-image: url(spritesmith-main-1.png);
- background-position: -662px -561px;
+ background-position: -571px -652px;
width: 60px;
height: 60px;
}
.hair_flower_2 {
background-image: url(spritesmith-main-1.png);
- background-position: 0px -637px;
+ background-position: -637px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_flower_2 {
background-image: url(spritesmith-main-1.png);
- background-position: -25px -652px;
+ background-position: -662px -652px;
width: 60px;
height: 60px;
}
.hair_flower_3 {
background-image: url(spritesmith-main-1.png);
- background-position: -91px -637px;
+ background-position: -728px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_flower_3 {
background-image: url(spritesmith-main-1.png);
- background-position: -116px -652px;
+ background-position: -753px -15px;
width: 60px;
height: 60px;
}
.hair_flower_4 {
background-image: url(spritesmith-main-1.png);
- background-position: -182px -637px;
+ background-position: -728px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_flower_4 {
background-image: url(spritesmith-main-1.png);
- background-position: -207px -652px;
+ background-position: -753px -106px;
width: 60px;
height: 60px;
}
.hair_flower_5 {
background-image: url(spritesmith-main-1.png);
- background-position: -273px -637px;
+ background-position: -728px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_flower_5 {
background-image: url(spritesmith-main-1.png);
- background-position: -298px -652px;
+ background-position: -753px -197px;
width: 60px;
height: 60px;
}
.hair_flower_6 {
background-image: url(spritesmith-main-1.png);
- background-position: -364px -637px;
+ background-position: -728px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_flower_6 {
background-image: url(spritesmith-main-1.png);
- background-position: -389px -652px;
+ background-position: -753px -288px;
width: 60px;
height: 60px;
}
.hair_bangs_1_TRUred {
background-image: url(spritesmith-main-1.png);
- background-position: -364px -819px;
+ background-position: -910px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_TRUred {
background-image: url(spritesmith-main-1.png);
- background-position: -389px -834px;
+ background-position: -935px -106px;
width: 60px;
height: 60px;
}
.hair_bangs_1_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -455px -637px;
+ background-position: -728px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -480px -652px;
+ background-position: -753px -379px;
width: 60px;
height: 60px;
}
.hair_bangs_1_black {
background-image: url(spritesmith-main-1.png);
- background-position: -546px -637px;
+ background-position: -728px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_black {
background-image: url(spritesmith-main-1.png);
- background-position: -571px -652px;
+ background-position: -753px -470px;
width: 60px;
height: 60px;
}
.hair_bangs_1_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -637px;
+ background-position: -728px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -662px -652px;
+ background-position: -753px -561px;
width: 60px;
height: 60px;
}
.hair_bangs_1_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -728px 0px;
+ background-position: -728px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -15px;
+ background-position: -753px -652px;
width: 60px;
height: 60px;
}
.hair_bangs_1_brown {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -91px;
+ background-position: 0px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_brown {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -106px;
+ background-position: -25px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_1_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -182px;
+ background-position: -91px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -197px;
+ background-position: -116px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_1_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -273px;
+ background-position: -182px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -288px;
+ background-position: -207px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_1_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -364px;
+ background-position: -273px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -379px;
+ background-position: -298px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_1_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -455px;
+ background-position: -364px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -470px;
+ background-position: -389px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_1_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -546px;
+ background-position: -455px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -561px;
+ background-position: -480px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_1_green {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -637px;
+ background-position: -546px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_green {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -652px;
+ background-position: -571px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_1_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: 0px -728px;
+ background-position: -637px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: -25px -743px;
+ background-position: -662px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_1_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -91px -728px;
+ background-position: -728px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -116px -743px;
+ background-position: -753px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_1_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -182px -728px;
+ background-position: -819px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -207px -743px;
+ background-position: -844px -15px;
width: 60px;
height: 60px;
}
.hair_bangs_1_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -273px -728px;
+ background-position: -819px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -298px -743px;
+ background-position: -844px -106px;
width: 60px;
height: 60px;
}
.hair_bangs_1_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -364px -728px;
+ background-position: -819px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -389px -743px;
+ background-position: -844px -197px;
width: 60px;
height: 60px;
}
.hair_bangs_1_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: -455px -728px;
+ background-position: -819px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: -480px -743px;
+ background-position: -844px -288px;
width: 60px;
height: 60px;
}
.hair_bangs_1_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: -546px -728px;
+ background-position: -819px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: -571px -743px;
+ background-position: -844px -379px;
width: 60px;
height: 60px;
}
.hair_bangs_1_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -728px;
+ background-position: -819px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -662px -743px;
+ background-position: -844px -470px;
width: 60px;
height: 60px;
}
.hair_bangs_1_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -728px;
+ background-position: -819px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -743px;
+ background-position: -844px -561px;
width: 60px;
height: 60px;
}
.hair_bangs_1_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -819px 0px;
+ background-position: -819px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -15px;
+ background-position: -844px -652px;
width: 60px;
height: 60px;
}
.hair_bangs_1_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -91px;
+ background-position: -819px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -106px;
+ background-position: -844px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_1_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -182px;
+ background-position: 0px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -197px;
+ background-position: -25px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_1_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -273px;
+ background-position: -91px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -288px;
+ background-position: -116px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_1_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -364px;
+ background-position: -182px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -379px;
+ background-position: -207px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_1_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -455px;
+ background-position: -273px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -470px;
+ background-position: -298px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_1_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -546px;
+ background-position: -364px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -561px;
+ background-position: -389px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_1_purple {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -637px;
+ background-position: -455px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_purple {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -652px;
+ background-position: -480px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_1_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -728px;
+ background-position: -546px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -743px;
+ background-position: -571px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_1_pyellow2 {
background-image: url(spritesmith-main-1.png);
- background-position: 0px -819px;
+ background-position: -637px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_pyellow2 {
background-image: url(spritesmith-main-1.png);
- background-position: -25px -834px;
+ background-position: -662px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_1_rainbow {
background-image: url(spritesmith-main-1.png);
- background-position: -91px -819px;
+ background-position: -728px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_rainbow {
background-image: url(spritesmith-main-1.png);
- background-position: -116px -834px;
+ background-position: -753px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_1_red {
background-image: url(spritesmith-main-1.png);
- background-position: -182px -819px;
+ background-position: -819px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_red {
background-image: url(spritesmith-main-1.png);
- background-position: -207px -834px;
+ background-position: -844px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_1_snowy {
background-image: url(spritesmith-main-1.png);
- background-position: -273px -819px;
+ background-position: -910px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_snowy {
background-image: url(spritesmith-main-1.png);
- background-position: -298px -834px;
+ background-position: -935px -15px;
width: 60px;
height: 60px;
}
.hair_bangs_1_white {
background-image: url(spritesmith-main-1.png);
- background-position: -455px -819px;
+ background-position: -910px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_white {
background-image: url(spritesmith-main-1.png);
- background-position: -480px -834px;
+ background-position: -935px -197px;
width: 60px;
height: 60px;
}
.hair_bangs_1_winternight {
background-image: url(spritesmith-main-1.png);
- background-position: -546px -819px;
+ background-position: -910px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_winternight {
background-image: url(spritesmith-main-1.png);
- background-position: -571px -834px;
+ background-position: -935px -288px;
width: 60px;
height: 60px;
}
.hair_bangs_1_winterstar {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -819px;
+ background-position: -910px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_winterstar {
background-image: url(spritesmith-main-1.png);
- background-position: -662px -834px;
+ background-position: -935px -379px;
width: 60px;
height: 60px;
}
.hair_bangs_1_yellow {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -819px;
+ background-position: -910px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_yellow {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -834px;
+ background-position: -935px -470px;
width: 60px;
height: 60px;
}
.hair_bangs_1_zombie {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -819px;
+ background-position: -910px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_1_zombie {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -834px;
+ background-position: -935px -561px;
width: 60px;
height: 60px;
}
.hair_bangs_2_TRUred {
background-image: url(spritesmith-main-1.png);
- background-position: -91px -1001px;
+ background-position: -728px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_TRUred {
background-image: url(spritesmith-main-1.png);
- background-position: -116px -1016px;
+ background-position: -753px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_2_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -910px 0px;
+ background-position: -910px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -15px;
+ background-position: -935px -652px;
width: 60px;
height: 60px;
}
.hair_bangs_2_black {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -91px;
+ background-position: -910px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_black {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -106px;
+ background-position: -935px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_2_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -182px;
+ background-position: -910px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -197px;
+ background-position: -935px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_2_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -273px;
+ background-position: 0px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -288px;
+ background-position: -25px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_2_brown {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -364px;
+ background-position: -91px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_brown {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -379px;
+ background-position: -116px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_2_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -455px;
+ background-position: -182px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -470px;
+ background-position: -207px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_2_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -546px;
+ background-position: -273px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -561px;
+ background-position: -298px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_2_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -637px;
+ background-position: -364px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -652px;
+ background-position: -389px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_2_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -728px;
+ background-position: -455px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -743px;
+ background-position: -480px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_2_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -819px;
+ background-position: -546px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -834px;
+ background-position: -571px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_2_green {
background-image: url(spritesmith-main-1.png);
- background-position: 0px -910px;
+ background-position: -637px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_green {
background-image: url(spritesmith-main-1.png);
- background-position: -25px -925px;
+ background-position: -662px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_2_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: -91px -910px;
+ background-position: -728px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: -116px -925px;
+ background-position: -753px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_2_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -182px -910px;
+ background-position: -819px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -207px -925px;
+ background-position: -844px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_2_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -273px -910px;
+ background-position: -910px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -298px -925px;
+ background-position: -935px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_2_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -364px -910px;
+ background-position: -1001px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -389px -925px;
+ background-position: -1026px -15px;
width: 60px;
height: 60px;
}
.hair_bangs_2_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -455px -910px;
+ background-position: -1001px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -480px -925px;
+ background-position: -1026px -106px;
width: 60px;
height: 60px;
}
.hair_bangs_2_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: -546px -910px;
+ background-position: -1001px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: -571px -925px;
+ background-position: -1026px -197px;
width: 60px;
height: 60px;
}
.hair_bangs_2_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -910px;
+ background-position: -1001px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: -662px -925px;
+ background-position: -1026px -288px;
width: 60px;
height: 60px;
}
.hair_bangs_2_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -910px;
+ background-position: -1001px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -925px;
+ background-position: -1026px -379px;
width: 60px;
height: 60px;
}
.hair_bangs_2_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -910px;
+ background-position: -1001px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -925px;
+ background-position: -1026px -470px;
width: 60px;
height: 60px;
}
.hair_bangs_2_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -910px;
+ background-position: -1001px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -925px;
+ background-position: -1026px -561px;
width: 60px;
height: 60px;
}
.hair_bangs_2_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px 0px;
+ background-position: -1001px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -15px;
+ background-position: -1026px -652px;
width: 60px;
height: 60px;
}
.hair_bangs_2_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -91px;
+ background-position: -1001px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -106px;
+ background-position: -1026px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_2_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -182px;
+ background-position: -1001px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -197px;
+ background-position: -1026px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_2_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -273px;
+ background-position: -1001px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -288px;
+ background-position: -1026px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_2_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -364px;
+ background-position: 0px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -379px;
+ background-position: -25px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_2_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -455px;
+ background-position: -91px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -470px;
+ background-position: -116px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_2_purple {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -546px;
+ background-position: -182px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_purple {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -561px;
+ background-position: -207px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_2_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -637px;
+ background-position: -273px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -652px;
+ background-position: -298px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_2_pyellow2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -728px;
+ background-position: -364px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_pyellow2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -743px;
+ background-position: -389px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_2_rainbow {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -819px;
+ background-position: -455px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_rainbow {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -834px;
+ background-position: -480px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_2_red {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -910px;
+ background-position: -546px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_red {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -925px;
+ background-position: -571px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_2_snowy {
background-image: url(spritesmith-main-1.png);
- background-position: 0px -1001px;
+ background-position: -637px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_snowy {
background-image: url(spritesmith-main-1.png);
- background-position: -25px -1016px;
+ background-position: -662px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_2_white {
background-image: url(spritesmith-main-1.png);
- background-position: -182px -1001px;
+ background-position: -819px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_white {
background-image: url(spritesmith-main-1.png);
- background-position: -207px -1016px;
+ background-position: -844px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_2_winternight {
background-image: url(spritesmith-main-1.png);
- background-position: -273px -1001px;
+ background-position: -910px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_winternight {
background-image: url(spritesmith-main-1.png);
- background-position: -298px -1016px;
+ background-position: -935px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_2_winterstar {
background-image: url(spritesmith-main-1.png);
- background-position: -364px -1001px;
+ background-position: -1001px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_winterstar {
background-image: url(spritesmith-main-1.png);
- background-position: -389px -1016px;
+ background-position: -1026px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_2_yellow {
background-image: url(spritesmith-main-1.png);
- background-position: -455px -1001px;
+ background-position: -1092px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_yellow {
background-image: url(spritesmith-main-1.png);
- background-position: -480px -1016px;
+ background-position: -1117px -15px;
width: 60px;
height: 60px;
}
.hair_bangs_2_zombie {
background-image: url(spritesmith-main-1.png);
- background-position: -546px -1001px;
+ background-position: -1092px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_2_zombie {
background-image: url(spritesmith-main-1.png);
- background-position: -571px -1016px;
+ background-position: -1117px -106px;
width: 60px;
height: 60px;
}
.hair_bangs_3_TRUred {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -273px;
+ background-position: -1183px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_TRUred {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -288px;
+ background-position: -1208px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_3_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -1001px;
+ background-position: -1092px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -662px -1016px;
+ background-position: -1117px -197px;
width: 60px;
height: 60px;
}
.hair_bangs_3_black {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -1001px;
+ background-position: -1092px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_black {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -1016px;
+ background-position: -1117px -288px;
width: 60px;
height: 60px;
}
.hair_bangs_3_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -1001px;
+ background-position: -1092px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -1016px;
+ background-position: -1117px -379px;
width: 60px;
height: 60px;
}
.hair_bangs_3_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -1001px;
+ background-position: -1092px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -1016px;
+ background-position: -1117px -470px;
width: 60px;
height: 60px;
}
.hair_bangs_3_brown {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -1001px;
+ background-position: -1092px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_brown {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -1016px;
+ background-position: -1117px -561px;
width: 60px;
height: 60px;
}
.hair_bangs_3_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px 0px;
+ background-position: -1092px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -15px;
+ background-position: -1117px -652px;
width: 60px;
height: 60px;
}
.hair_bangs_3_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -91px;
+ background-position: -1092px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -106px;
+ background-position: -1117px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_3_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -182px;
+ background-position: -1092px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -197px;
+ background-position: -1117px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_3_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -273px;
+ background-position: -1092px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -288px;
+ background-position: -1117px -925px;
width: 60px;
height: 60px;
}
.hair_bangs_3_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -364px;
+ background-position: -1092px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -379px;
+ background-position: -1117px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_3_green {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -455px;
+ background-position: 0px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_green {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -470px;
+ background-position: -25px -1107px;
width: 60px;
height: 60px;
}
.hair_bangs_3_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -546px;
+ background-position: -91px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -561px;
+ background-position: -116px -1107px;
width: 60px;
height: 60px;
}
.hair_bangs_3_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -637px;
+ background-position: -182px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -652px;
+ background-position: -207px -1107px;
width: 60px;
height: 60px;
}
.hair_bangs_3_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -728px;
+ background-position: -273px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -743px;
+ background-position: -298px -1107px;
width: 60px;
height: 60px;
}
.hair_bangs_3_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -819px;
+ background-position: -364px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -834px;
+ background-position: -389px -1107px;
width: 60px;
height: 60px;
}
.hair_bangs_3_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -910px;
+ background-position: -455px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -925px;
+ background-position: -480px -1107px;
width: 60px;
height: 60px;
}
.hair_bangs_3_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -1001px;
+ background-position: -546px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -1016px;
+ background-position: -571px -1107px;
width: 60px;
height: 60px;
}
.hair_bangs_3_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: 0px -1092px;
+ background-position: -637px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: -25px -1107px;
+ background-position: -662px -1107px;
width: 60px;
height: 60px;
}
.hair_bangs_3_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -91px -1092px;
+ background-position: -728px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -116px -1107px;
+ background-position: -753px -1107px;
width: 60px;
height: 60px;
}
.hair_bangs_3_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -182px -1092px;
+ background-position: -819px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -207px -1107px;
+ background-position: -844px -1107px;
width: 60px;
height: 60px;
}
.hair_bangs_3_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -273px -1092px;
+ background-position: 0px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -298px -1107px;
+ background-position: -25px -15px;
width: 60px;
height: 60px;
}
.hair_bangs_3_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -364px -1092px;
+ background-position: -1001px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -389px -1107px;
+ background-position: -1026px -1107px;
width: 60px;
height: 60px;
}
.hair_bangs_3_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -455px -1092px;
+ background-position: -1092px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -480px -1107px;
+ background-position: -1117px -1107px;
width: 60px;
height: 60px;
}
.hair_bangs_3_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: -546px -1092px;
+ background-position: -1183px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: -571px -1107px;
+ background-position: -1208px -15px;
width: 60px;
height: 60px;
}
.hair_bangs_3_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -1092px;
+ background-position: -1183px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -662px -1107px;
+ background-position: -1208px -106px;
width: 60px;
height: 60px;
}
.hair_bangs_3_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -1092px;
+ background-position: -1183px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -1107px;
+ background-position: -1208px -197px;
width: 60px;
height: 60px;
}
.hair_bangs_3_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -1092px;
+ background-position: -1183px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -1107px;
+ background-position: -1208px -288px;
width: 60px;
height: 60px;
}
.hair_bangs_3_purple {
background-image: url(spritesmith-main-1.png);
- background-position: 0px 0px;
+ background-position: -1183px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_purple {
background-image: url(spritesmith-main-1.png);
- background-position: -25px -15px;
+ background-position: -1208px -379px;
width: 60px;
height: 60px;
}
.hair_bangs_3_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -1092px;
+ background-position: -1183px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -1107px;
+ background-position: -1208px -470px;
width: 60px;
height: 60px;
}
.hair_bangs_3_pyellow2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -1092px;
+ background-position: -1183px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_pyellow2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -1107px;
+ background-position: -1208px -561px;
width: 60px;
height: 60px;
}
.hair_bangs_3_rainbow {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px 0px;
+ background-position: -1183px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_rainbow {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -15px;
+ background-position: -1208px -652px;
width: 60px;
height: 60px;
}
.hair_bangs_3_red {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -91px;
+ background-position: -1183px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_red {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -106px;
+ background-position: -1208px -743px;
width: 60px;
height: 60px;
}
.hair_bangs_3_snowy {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -182px;
+ background-position: -1183px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_snowy {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -197px;
+ background-position: -1208px -834px;
width: 60px;
height: 60px;
}
.hair_bangs_3_white {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -364px;
+ background-position: -1183px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_white {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -379px;
+ background-position: -1208px -1016px;
width: 60px;
height: 60px;
}
.hair_bangs_3_winternight {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -455px;
+ background-position: -1183px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_winternight {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -470px;
+ background-position: -1208px -1107px;
width: 60px;
height: 60px;
}
.hair_bangs_3_winterstar {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -546px;
+ background-position: 0px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_winterstar {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -561px;
+ background-position: -25px -1198px;
width: 60px;
height: 60px;
}
.hair_bangs_3_yellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -637px;
+ background-position: -91px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_yellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -652px;
+ background-position: -116px -1198px;
width: 60px;
height: 60px;
}
.hair_bangs_3_zombie {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -728px;
+ background-position: -182px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_bangs_3_zombie {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -743px;
+ background-position: -207px -1198px;
width: 60px;
height: 60px;
}
.hair_base_10_TRUred {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -1365px;
+ background-position: -1456px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_TRUred {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -1380px;
+ background-position: -1481px -106px;
width: 60px;
height: 60px;
}
.hair_base_10_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -1274px;
+ background-position: -1274px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -662px -1289px;
+ background-position: -1299px -1289px;
width: 60px;
height: 60px;
}
.hair_base_10_black {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -1274px;
+ background-position: -1365px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_black {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -1289px;
+ background-position: -1390px -15px;
width: 60px;
height: 60px;
}
.hair_base_10_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -1274px;
+ background-position: -1365px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -1289px;
+ background-position: -1390px -106px;
width: 60px;
height: 60px;
}
.hair_base_10_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -1274px;
+ background-position: -1365px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -1289px;
+ background-position: -1390px -197px;
width: 60px;
height: 60px;
}
.hair_base_10_brown {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -1274px;
+ background-position: -1365px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_brown {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -1289px;
+ background-position: -1390px -288px;
width: 60px;
height: 60px;
}
.hair_base_10_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -1274px;
+ background-position: -1365px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -1289px;
+ background-position: -1390px -379px;
width: 60px;
height: 60px;
}
.hair_base_10_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -1274px;
+ background-position: -1365px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -1289px;
+ background-position: -1390px -470px;
width: 60px;
height: 60px;
}
.hair_base_10_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -1274px;
+ background-position: -1365px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -1289px;
+ background-position: -1390px -561px;
width: 60px;
height: 60px;
}
.hair_base_10_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px 0px;
+ background-position: -1365px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -15px;
+ background-position: -1390px -652px;
width: 60px;
height: 60px;
}
.hair_base_10_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -91px;
+ background-position: -1365px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -106px;
+ background-position: -1390px -743px;
width: 60px;
height: 60px;
}
.hair_base_10_green {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -182px;
+ background-position: -1365px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_green {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -197px;
+ background-position: -1390px -834px;
width: 60px;
height: 60px;
}
.hair_base_10_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -273px;
+ background-position: -1365px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -288px;
+ background-position: -1390px -925px;
width: 60px;
height: 60px;
}
.hair_base_10_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -364px;
+ background-position: -1365px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -379px;
+ background-position: -1390px -1016px;
width: 60px;
height: 60px;
}
.hair_base_10_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -455px;
+ background-position: -1365px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -470px;
+ background-position: -1390px -1107px;
width: 60px;
height: 60px;
}
.hair_base_10_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -546px;
+ background-position: -1365px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -561px;
+ background-position: -1390px -1198px;
width: 60px;
height: 60px;
}
.hair_base_10_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -637px;
+ background-position: -1365px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -652px;
+ background-position: -1390px -1289px;
width: 60px;
height: 60px;
}
.hair_base_10_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -728px;
+ background-position: 0px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -743px;
+ background-position: -25px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -819px;
+ background-position: -91px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -834px;
+ background-position: -116px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -910px;
+ background-position: -182px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -925px;
+ background-position: -207px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -1001px;
+ background-position: -273px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -1016px;
+ background-position: -298px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -1092px;
+ background-position: -364px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -1107px;
+ background-position: -389px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -1183px;
+ background-position: -455px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -1198px;
+ background-position: -480px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -1274px;
+ background-position: -546px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -1289px;
+ background-position: -571px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: 0px -1365px;
+ background-position: -637px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: -25px -1380px;
+ background-position: -662px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -91px -1365px;
+ background-position: -728px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -116px -1380px;
+ background-position: -753px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -182px -1365px;
+ background-position: -819px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -207px -1380px;
+ background-position: -844px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -273px -1365px;
+ background-position: -910px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -298px -1380px;
+ background-position: -935px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_purple {
background-image: url(spritesmith-main-1.png);
- background-position: -364px -1365px;
+ background-position: -1001px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_purple {
background-image: url(spritesmith-main-1.png);
- background-position: -389px -1380px;
+ background-position: -1026px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -455px -1365px;
+ background-position: -1092px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -480px -1380px;
+ background-position: -1117px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_pyellow2 {
background-image: url(spritesmith-main-1.png);
- background-position: -546px -1365px;
+ background-position: -1183px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_pyellow2 {
background-image: url(spritesmith-main-1.png);
- background-position: -571px -1380px;
+ background-position: -1208px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_rainbow {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -1365px;
+ background-position: -1274px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_rainbow {
background-image: url(spritesmith-main-1.png);
- background-position: -662px -1380px;
+ background-position: -1299px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_red {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -1365px;
+ background-position: -1365px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_red {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -1380px;
+ background-position: -1390px -1380px;
width: 60px;
height: 60px;
}
.hair_base_10_snowy {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -1365px;
+ background-position: -1456px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_snowy {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -1380px;
+ background-position: -1481px -15px;
width: 60px;
height: 60px;
}
.hair_base_10_white {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -1365px;
+ background-position: -1456px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_white {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -1380px;
+ background-position: -1481px -197px;
width: 60px;
height: 60px;
}
.hair_base_10_winternight {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -1365px;
+ background-position: -1456px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_winternight {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -1380px;
+ background-position: -1481px -288px;
width: 60px;
height: 60px;
}
.hair_base_10_winterstar {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -1365px;
+ background-position: -1456px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_winterstar {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -1380px;
+ background-position: -1481px -379px;
width: 60px;
height: 60px;
}
.hair_base_10_yellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -1365px;
+ background-position: -1456px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_yellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -1380px;
+ background-position: -1481px -470px;
width: 60px;
height: 60px;
}
.hair_base_10_zombie {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -1365px;
+ background-position: -1456px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_10_zombie {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -1380px;
+ background-position: -1481px -561px;
width: 60px;
height: 60px;
}
.hair_base_11_TRUred {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px 0px;
+ background-position: -1547px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_TRUred {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -15px;
+ background-position: -1572px -652px;
width: 60px;
height: 60px;
}
.hair_base_11_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px 0px;
+ background-position: -1456px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -15px;
+ background-position: -1481px -652px;
width: 60px;
height: 60px;
}
.hair_base_11_black {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -91px;
+ background-position: -1456px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_black {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -106px;
+ background-position: -1481px -743px;
width: 60px;
height: 60px;
}
.hair_base_11_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -182px;
+ background-position: -1456px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -197px;
+ background-position: -1481px -834px;
width: 60px;
height: 60px;
}
.hair_base_11_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -273px;
+ background-position: -1456px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -288px;
+ background-position: -1481px -925px;
width: 60px;
height: 60px;
}
.hair_base_11_brown {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -364px;
+ background-position: -1456px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_brown {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -379px;
+ background-position: -1481px -1016px;
width: 60px;
height: 60px;
}
.hair_base_11_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -455px;
+ background-position: -1456px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -470px;
+ background-position: -1481px -1107px;
width: 60px;
height: 60px;
}
.hair_base_11_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -546px;
+ background-position: -1456px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -561px;
+ background-position: -1481px -1198px;
width: 60px;
height: 60px;
}
.hair_base_11_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -637px;
+ background-position: -1456px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -652px;
+ background-position: -1481px -1289px;
width: 60px;
height: 60px;
}
.hair_base_11_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -728px;
+ background-position: -1456px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -743px;
+ background-position: -1481px -1380px;
width: 60px;
height: 60px;
}
.hair_base_11_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -819px;
+ background-position: 0px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -834px;
+ background-position: -25px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_green {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -910px;
+ background-position: -91px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_green {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -925px;
+ background-position: -116px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -1001px;
+ background-position: -182px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -1016px;
+ background-position: -207px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -1092px;
+ background-position: -273px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -1107px;
+ background-position: -298px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -1183px;
+ background-position: -364px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -1198px;
+ background-position: -389px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -1274px;
+ background-position: -455px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -1289px;
+ background-position: -480px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -1365px;
+ background-position: -546px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -1380px;
+ background-position: -571px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: 0px -1456px;
+ background-position: -637px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: -25px -1471px;
+ background-position: -662px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: -91px -1456px;
+ background-position: -728px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: -116px -1471px;
+ background-position: -753px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -182px -1456px;
+ background-position: -819px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -207px -1471px;
+ background-position: -844px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -273px -1456px;
+ background-position: -910px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -298px -1471px;
+ background-position: -935px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -364px -1456px;
+ background-position: -1001px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -389px -1471px;
+ background-position: -1026px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -455px -1456px;
+ background-position: -1092px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -480px -1471px;
+ background-position: -1117px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -546px -1456px;
+ background-position: -1183px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -571px -1471px;
+ background-position: -1208px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -1456px;
+ background-position: -1274px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: -662px -1471px;
+ background-position: -1299px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -1456px;
+ background-position: -1365px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -1471px;
+ background-position: -1390px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -1456px;
+ background-position: -1456px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -1471px;
+ background-position: -1481px -1471px;
width: 60px;
height: 60px;
}
.hair_base_11_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -1456px;
+ background-position: -1547px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -1471px;
+ background-position: -1572px -15px;
width: 60px;
height: 60px;
}
.hair_base_11_purple {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -1456px;
+ background-position: -1547px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_purple {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -1471px;
+ background-position: -1572px -106px;
width: 60px;
height: 60px;
}
.hair_base_11_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -1456px;
+ background-position: -1547px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -1471px;
+ background-position: -1572px -197px;
width: 60px;
height: 60px;
}
.hair_base_11_pyellow2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -1456px;
+ background-position: -1547px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_pyellow2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -1471px;
+ background-position: -1572px -288px;
width: 60px;
height: 60px;
}
.hair_base_11_rainbow {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -1456px;
+ background-position: -1547px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_rainbow {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -1471px;
+ background-position: -1572px -379px;
width: 60px;
height: 60px;
}
.hair_base_11_red {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -1456px;
+ background-position: -1547px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_red {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -1471px;
+ background-position: -1572px -470px;
width: 60px;
height: 60px;
}
.hair_base_11_snowy {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -1456px;
+ background-position: -1547px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_snowy {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -1471px;
+ background-position: -1572px -561px;
width: 60px;
height: 60px;
}
.hair_base_11_white {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -91px;
+ background-position: -1547px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_white {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -106px;
+ background-position: -1572px -743px;
width: 60px;
height: 60px;
}
.hair_base_11_winternight {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -182px;
+ background-position: -1547px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_winternight {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -197px;
+ background-position: -1572px -834px;
width: 60px;
height: 60px;
}
.hair_base_11_winterstar {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -273px;
+ background-position: -1547px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_winterstar {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -288px;
+ background-position: -1572px -925px;
width: 60px;
height: 60px;
}
.hair_base_11_yellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -364px;
+ background-position: -1547px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_yellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -379px;
+ background-position: -1572px -1016px;
width: 60px;
height: 60px;
}
.hair_base_11_zombie {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -455px;
+ background-position: -1547px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_11_zombie {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_12_TRUred {
- background-image: url(spritesmith-main-1.png);
- background-position: -273px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_12_TRUred {
- background-image: url(spritesmith-main-1.png);
- background-position: -298px -561px;
+ background-position: -1572px -1107px;
width: 60px;
height: 60px;
}
.hair_base_12_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -546px;
+ background-position: -1547px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -561px;
+ background-position: -1572px -1198px;
width: 60px;
height: 60px;
}
.hair_base_12_black {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -637px;
+ background-position: -1547px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_black {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -652px;
+ background-position: -1572px -1289px;
width: 60px;
height: 60px;
}
.hair_base_12_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -728px;
+ background-position: -1547px -1365px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -743px;
+ background-position: -1572px -1380px;
width: 60px;
height: 60px;
}
.hair_base_12_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -819px;
+ background-position: -1547px -1456px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -834px;
+ background-position: -1572px -1471px;
width: 60px;
height: 60px;
}
.hair_base_12_brown {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -910px;
+ background-position: 0px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_brown {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -925px;
+ background-position: -25px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -1001px;
+ background-position: -91px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -1016px;
+ background-position: -116px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -1092px;
+ background-position: -182px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -1107px;
+ background-position: -207px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -1183px;
+ background-position: -273px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -1198px;
+ background-position: -298px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -1274px;
+ background-position: -364px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -1289px;
+ background-position: -389px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -1365px;
+ background-position: -455px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -1380px;
+ background-position: -480px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_green {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -1456px;
+ background-position: -546px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_green {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -1471px;
+ background-position: -571px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: 0px -1547px;
+ background-position: -637px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: -25px -1562px;
+ background-position: -662px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -91px -1547px;
+ background-position: -728px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -116px -1562px;
+ background-position: -753px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -182px -1547px;
+ background-position: -819px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -207px -1562px;
+ background-position: -844px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -273px -1547px;
+ background-position: -910px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -298px -1562px;
+ background-position: -935px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -364px -1547px;
+ background-position: -1001px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -389px -1562px;
+ background-position: -1026px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: -455px -1547px;
+ background-position: -1092px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: -480px -1562px;
+ background-position: -1117px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: -546px -1547px;
+ background-position: -1183px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: -571px -1562px;
+ background-position: -1208px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -1547px;
+ background-position: -1274px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -662px -1562px;
+ background-position: -1299px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -1547px;
+ background-position: -1365px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -1562px;
+ background-position: -1390px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -1547px;
+ background-position: -1456px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -1562px;
+ background-position: -1481px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -1547px;
+ background-position: -1547px -1547px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -1562px;
+ background-position: -1572px -1562px;
width: 60px;
height: 60px;
}
.hair_base_12_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -1547px;
+ background-position: -1638px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -1562px;
+ background-position: -1663px -15px;
width: 60px;
height: 60px;
}
.hair_base_12_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -1547px;
+ background-position: -637px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -1562px;
+ background-position: -662px -561px;
width: 60px;
height: 60px;
}
.hair_base_12_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -1547px;
+ background-position: -637px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -1562px;
+ background-position: -662px -470px;
width: 60px;
height: 60px;
}
.hair_base_12_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -1547px;
+ background-position: -637px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -1562px;
+ background-position: -662px -379px;
width: 60px;
height: 60px;
}
.hair_base_12_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -1365px -1547px;
+ background-position: -637px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -1390px -1562px;
+ background-position: -662px -288px;
width: 60px;
height: 60px;
}
.hair_base_12_purple {
background-image: url(spritesmith-main-1.png);
- background-position: -1456px -1547px;
+ background-position: -637px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_purple {
background-image: url(spritesmith-main-1.png);
- background-position: -1481px -1562px;
+ background-position: -662px -197px;
width: 60px;
height: 60px;
}
.hair_base_12_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1547px -1547px;
+ background-position: -637px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_12_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1572px -1562px;
+ background-position: -662px -106px;
width: 60px;
height: 60px;
}
.hair_base_12_pyellow2 {
- background-image: url(spritesmith-main-1.png);
- background-position: -1638px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_12_pyellow2 {
- background-image: url(spritesmith-main-1.png);
- background-position: -1663px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_12_rainbow {
- background-image: url(spritesmith-main-1.png);
- background-position: -546px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_12_rainbow {
- background-image: url(spritesmith-main-1.png);
- background-position: -571px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_12_red {
- background-image: url(spritesmith-main-1.png);
- background-position: -455px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_12_red {
- background-image: url(spritesmith-main-1.png);
- background-position: -480px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_12_snowy {
- background-image: url(spritesmith-main-1.png);
- background-position: -364px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_12_snowy {
- background-image: url(spritesmith-main-1.png);
- background-position: -389px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_12_white {
- background-image: url(spritesmith-main-1.png);
- background-position: -182px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_12_white {
- background-image: url(spritesmith-main-1.png);
- background-position: -207px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_12_winternight {
- background-image: url(spritesmith-main-1.png);
- background-position: -91px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_12_winternight {
- background-image: url(spritesmith-main-1.png);
- background-position: -116px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_12_winterstar {
background-image: url(spritesmith-main-1.png);
background-position: -1638px -91px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_12_winterstar {
+.customize-option.hair_base_12_pyellow2 {
background-image: url(spritesmith-main-1.png);
background-position: -1663px -106px;
width: 60px;
@@ -3444,469 +3444,469 @@
}
.hair_base_1_TRUred {
background-image: url(spritesmith-main-1.png);
- background-position: -91px -1274px;
+ background-position: -728px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_TRUred {
background-image: url(spritesmith-main-1.png);
- background-position: -116px -1289px;
+ background-position: -753px -1289px;
width: 60px;
height: 60px;
}
.hair_base_1_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -819px;
+ background-position: -273px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_aurora {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -834px;
+ background-position: -298px -1198px;
width: 60px;
height: 60px;
}
.hair_base_1_black {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -910px;
+ background-position: -364px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_black {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -925px;
+ background-position: -389px -1198px;
width: 60px;
height: 60px;
}
.hair_base_1_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -1001px;
+ background-position: -455px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_blond {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -1016px;
+ background-position: -480px -1198px;
width: 60px;
height: 60px;
}
.hair_base_1_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -1092px;
+ background-position: -546px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_blue {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -1107px;
+ background-position: -571px -1198px;
width: 60px;
height: 60px;
}
.hair_base_1_brown {
background-image: url(spritesmith-main-1.png);
- background-position: 0px -1183px;
+ background-position: -637px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_brown {
background-image: url(spritesmith-main-1.png);
- background-position: -25px -1198px;
+ background-position: -662px -1198px;
width: 60px;
height: 60px;
}
.hair_base_1_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -91px -1183px;
+ background-position: -728px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_candycane {
background-image: url(spritesmith-main-1.png);
- background-position: -116px -1198px;
+ background-position: -753px -1198px;
width: 60px;
height: 60px;
}
.hair_base_1_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -182px -1183px;
+ background-position: -819px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_candycorn {
background-image: url(spritesmith-main-1.png);
- background-position: -207px -1198px;
+ background-position: -844px -1198px;
width: 60px;
height: 60px;
}
.hair_base_1_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -273px -1183px;
+ background-position: -910px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_festive {
background-image: url(spritesmith-main-1.png);
- background-position: -298px -1198px;
+ background-position: -935px -1198px;
width: 60px;
height: 60px;
}
.hair_base_1_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -364px -1183px;
+ background-position: -1001px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_frost {
background-image: url(spritesmith-main-1.png);
- background-position: -389px -1198px;
+ background-position: -1026px -1198px;
width: 60px;
height: 60px;
}
.hair_base_1_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -455px -1183px;
+ background-position: -1092px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_ghostwhite {
background-image: url(spritesmith-main-1.png);
- background-position: -480px -1198px;
+ background-position: -1117px -1198px;
width: 60px;
height: 60px;
}
.hair_base_1_green {
background-image: url(spritesmith-main-1.png);
- background-position: -546px -1183px;
+ background-position: -1183px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_green {
background-image: url(spritesmith-main-1.png);
- background-position: -571px -1198px;
+ background-position: -1208px -1198px;
width: 60px;
height: 60px;
}
.hair_base_1_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: -637px -1183px;
+ background-position: -1274px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_halloween {
background-image: url(spritesmith-main-1.png);
- background-position: -662px -1198px;
+ background-position: -1299px -15px;
width: 60px;
height: 60px;
}
.hair_base_1_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -728px -1183px;
+ background-position: -1274px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_holly {
background-image: url(spritesmith-main-1.png);
- background-position: -753px -1198px;
+ background-position: -1299px -106px;
width: 60px;
height: 60px;
}
.hair_base_1_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -819px -1183px;
+ background-position: -1274px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_hollygreen {
background-image: url(spritesmith-main-1.png);
- background-position: -844px -1198px;
+ background-position: -1299px -197px;
width: 60px;
height: 60px;
}
.hair_base_1_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -910px -1183px;
+ background-position: -1274px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_midnight {
background-image: url(spritesmith-main-1.png);
- background-position: -935px -1198px;
+ background-position: -1299px -288px;
width: 60px;
height: 60px;
}
.hair_base_1_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -1001px -1183px;
+ background-position: -1274px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pblue {
background-image: url(spritesmith-main-1.png);
- background-position: -1026px -1198px;
+ background-position: -1299px -379px;
width: 60px;
height: 60px;
}
.hair_base_1_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1092px -1183px;
+ background-position: -1274px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pblue2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1117px -1198px;
+ background-position: -1299px -470px;
width: 60px;
height: 60px;
}
.hair_base_1_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: -1183px -1183px;
+ background-position: -1274px -546px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_peppermint {
background-image: url(spritesmith-main-1.png);
- background-position: -1208px -1198px;
+ background-position: -1299px -561px;
width: 60px;
height: 60px;
}
.hair_base_1_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px 0px;
+ background-position: -1274px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pgreen {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -15px;
+ background-position: -1299px -652px;
width: 60px;
height: 60px;
}
.hair_base_1_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -91px;
+ background-position: -1274px -728px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pgreen2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -106px;
+ background-position: -1299px -743px;
width: 60px;
height: 60px;
}
.hair_base_1_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -182px;
+ background-position: -1274px -819px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_porange {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -197px;
+ background-position: -1299px -834px;
width: 60px;
height: 60px;
}
.hair_base_1_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -273px;
+ background-position: -1274px -910px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_porange2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -288px;
+ background-position: -1299px -925px;
width: 60px;
height: 60px;
}
.hair_base_1_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -364px;
+ background-position: -1274px -1001px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_ppink {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -379px;
+ background-position: -1299px -1016px;
width: 60px;
height: 60px;
}
.hair_base_1_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -455px;
+ background-position: -1274px -1092px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_ppink2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -470px;
+ background-position: -1299px -1107px;
width: 60px;
height: 60px;
}
.hair_base_1_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -546px;
+ background-position: -1274px -1183px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_ppurple {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -561px;
+ background-position: -1299px -1198px;
width: 60px;
height: 60px;
}
.hair_base_1_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -637px;
+ background-position: 0px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_ppurple2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -652px;
+ background-position: -25px -1289px;
width: 60px;
height: 60px;
}
.hair_base_1_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -728px;
+ background-position: -91px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pumpkin {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -743px;
+ background-position: -116px -1289px;
width: 60px;
height: 60px;
}
.hair_base_1_purple {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -819px;
+ background-position: -182px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_purple {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -834px;
+ background-position: -207px -1289px;
width: 60px;
height: 60px;
}
.hair_base_1_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -910px;
+ background-position: -273px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pyellow {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -925px;
+ background-position: -298px -1289px;
width: 60px;
height: 60px;
}
.hair_base_1_pyellow2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -1001px;
+ background-position: -364px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pyellow2 {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -1016px;
+ background-position: -389px -1289px;
width: 60px;
height: 60px;
}
.hair_base_1_rainbow {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -1092px;
+ background-position: -455px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_rainbow {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -1107px;
+ background-position: -480px -1289px;
width: 60px;
height: 60px;
}
.hair_base_1_red {
background-image: url(spritesmith-main-1.png);
- background-position: -1274px -1183px;
+ background-position: -546px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_red {
background-image: url(spritesmith-main-1.png);
- background-position: -1299px -1198px;
+ background-position: -571px -1289px;
width: 60px;
height: 60px;
}
.hair_base_1_snowy {
background-image: url(spritesmith-main-1.png);
- background-position: 0px -1274px;
+ background-position: -637px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_snowy {
background-image: url(spritesmith-main-1.png);
- background-position: -25px -1289px;
+ background-position: -662px -1289px;
width: 60px;
height: 60px;
}
.hair_base_1_white {
background-image: url(spritesmith-main-1.png);
- background-position: -182px -1274px;
+ background-position: -819px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_white {
background-image: url(spritesmith-main-1.png);
- background-position: -207px -1289px;
+ background-position: -844px -1289px;
width: 60px;
height: 60px;
}
.hair_base_1_winternight {
background-image: url(spritesmith-main-1.png);
- background-position: -273px -1274px;
+ background-position: -910px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_winternight {
background-image: url(spritesmith-main-1.png);
- background-position: -298px -1289px;
+ background-position: -935px -1289px;
width: 60px;
height: 60px;
}
.hair_base_1_winterstar {
background-image: url(spritesmith-main-1.png);
- background-position: -364px -1274px;
+ background-position: -1001px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_winterstar {
background-image: url(spritesmith-main-1.png);
- background-position: -389px -1289px;
+ background-position: -1026px -1289px;
width: 60px;
height: 60px;
}
.hair_base_1_yellow {
background-image: url(spritesmith-main-1.png);
- background-position: -455px -1274px;
+ background-position: -1092px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_yellow {
background-image: url(spritesmith-main-1.png);
- background-position: -480px -1289px;
+ background-position: -1117px -1289px;
width: 60px;
height: 60px;
}
.hair_base_1_zombie {
background-image: url(spritesmith-main-1.png);
- background-position: -546px -1274px;
+ background-position: -1183px -1274px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_zombie {
background-image: url(spritesmith-main-1.png);
- background-position: -571px -1289px;
+ background-position: -1208px -1289px;
width: 60px;
height: 60px;
}
diff --git a/common/dist/sprites/spritesmith-main-1.png b/common/dist/sprites/spritesmith-main-1.png
index f4dcd1da15..f6f7e0f6a0 100644
Binary files a/common/dist/sprites/spritesmith-main-1.png and b/common/dist/sprites/spritesmith-main-1.png differ
diff --git a/common/dist/sprites/spritesmith-main-10.css b/common/dist/sprites/spritesmith-main-10.css
index e074419b82..098845cbaf 100644
--- a/common/dist/sprites/spritesmith-main-10.css
+++ b/common/dist/sprites/spritesmith-main-10.css
@@ -1,1566 +1,1524 @@
-.Mount_Head_Sabretooth-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -136px 0px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Sabretooth-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -544px -272px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Sabretooth-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: 0px -136px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Sabretooth-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -136px -136px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Sabretooth-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -272px 0px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Sabretooth-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: -272px -136px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Seahorse-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: -1346px -954px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Seahorse-CottonCandyBlue {
- background-image: url(spritesmith-main-10.png);
- background-position: -1346px -848px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Seahorse-CottonCandyPink {
- background-image: url(spritesmith-main-10.png);
- background-position: -1346px -742px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Seahorse-Desert {
- background-image: url(spritesmith-main-10.png);
- background-position: -1346px -636px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Seahorse-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -1346px -530px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Seahorse-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -1346px -424px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Seahorse-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -1346px -318px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Seahorse-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -1346px -212px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Seahorse-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -1346px -106px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Seahorse-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: -1346px 0px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Sheep-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: -1166px -1210px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Sheep-CottonCandyBlue {
- background-image: url(spritesmith-main-10.png);
- background-position: -1060px -1210px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Sheep-CottonCandyPink {
- background-image: url(spritesmith-main-10.png);
- background-position: -954px -1210px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Sheep-Desert {
- background-image: url(spritesmith-main-10.png);
- background-position: -1134px -954px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Sheep-Golden {
+.Mount_Head_Rooster-White {
background-image: url(spritesmith-main-10.png);
background-position: -1134px -848px;
width: 105px;
height: 105px;
}
-.Mount_Head_Sheep-Red {
+.Mount_Head_Rooster-Zombie {
background-image: url(spritesmith-main-10.png);
- background-position: -1134px -742px;
+ background-position: -848px -1240px;
width: 105px;
height: 105px;
}
-.Mount_Head_Sheep-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -1134px -636px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Sheep-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -1134px -530px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Sheep-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -1134px -424px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Sheep-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: -1134px -318px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Slime-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: -1134px -212px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Slime-CottonCandyBlue {
- background-image: url(spritesmith-main-10.png);
- background-position: -1134px -106px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Slime-CottonCandyPink {
- background-image: url(spritesmith-main-10.png);
- background-position: -1134px 0px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Slime-Desert {
- background-image: url(spritesmith-main-10.png);
- background-position: 0px -680px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Slime-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -1346px -1060px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Slime-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -848px -998px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Slime-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -106px -680px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Slime-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -212px -680px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Slime-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -318px -680px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Slime-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: -424px -680px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snail-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: -530px -680px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snail-CottonCandyBlue {
- background-image: url(spritesmith-main-10.png);
- background-position: -636px -680px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snail-CottonCandyPink {
- background-image: url(spritesmith-main-10.png);
- background-position: -816px 0px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snail-Desert {
- background-image: url(spritesmith-main-10.png);
- background-position: -816px -106px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snail-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -816px -212px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snail-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -816px -318px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snail-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -816px -424px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snail-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -816px -530px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snail-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -816px -636px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snail-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: 0px -786px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snake-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: -106px -786px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snake-CottonCandyBlue {
- background-image: url(spritesmith-main-10.png);
- background-position: -212px -786px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snake-CottonCandyPink {
- background-image: url(spritesmith-main-10.png);
- background-position: -318px -786px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snake-Desert {
- background-image: url(spritesmith-main-10.png);
- background-position: -424px -786px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snake-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -530px -786px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snake-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -636px -786px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snake-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -742px -786px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snake-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -922px 0px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snake-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -922px -106px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Snake-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: -922px -212px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Spider-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: -922px -318px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Spider-CottonCandyBlue {
- background-image: url(spritesmith-main-10.png);
- background-position: -922px -424px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Spider-CottonCandyPink {
- background-image: url(spritesmith-main-10.png);
- background-position: -922px -530px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Spider-Desert {
- background-image: url(spritesmith-main-10.png);
- background-position: -922px -636px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Spider-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -922px -742px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Spider-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: 0px -892px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Spider-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -106px -892px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Spider-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -212px -892px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Spider-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -318px -892px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Spider-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: -424px -892px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_TRex-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: -680px -408px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_TRex-CottonCandyBlue {
- background-image: url(spritesmith-main-10.png);
- background-position: -680px -272px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_TRex-CottonCandyPink {
- background-image: url(spritesmith-main-10.png);
- background-position: -680px -136px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_TRex-Desert {
- background-image: url(spritesmith-main-10.png);
- background-position: -680px 0px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_TRex-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -544px -544px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_TRex-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -408px -544px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_TRex-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -272px -544px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_TRex-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -136px -544px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_TRex-White {
- background-image: url(spritesmith-main-10.png);
- background-position: 0px -544px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_TRex-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: -544px -408px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_TigerCub-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: -530px -892px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_TigerCub-CottonCandyBlue {
- background-image: url(spritesmith-main-10.png);
- background-position: -636px -892px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_TigerCub-CottonCandyPink {
- background-image: url(spritesmith-main-10.png);
- background-position: -742px -892px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_TigerCub-Desert {
- background-image: url(spritesmith-main-10.png);
- background-position: -848px -892px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_TigerCub-Floral {
- background-image: url(spritesmith-main-10.png);
- background-position: -1028px 0px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_TigerCub-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -1028px -106px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_TigerCub-Peppermint {
- background-image: url(spritesmith-main-10.png);
- background-position: -1028px -212px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_TigerCub-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -1028px -318px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_TigerCub-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -1028px -424px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_TigerCub-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -1028px -530px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_TigerCub-Spooky {
- background-image: url(spritesmith-main-10.png);
- background-position: -1028px -636px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_TigerCub-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -1028px -742px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_TigerCub-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: -1028px -848px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Treeling-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: 0px -998px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Treeling-CottonCandyBlue {
- background-image: url(spritesmith-main-10.png);
- background-position: -106px -998px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Treeling-CottonCandyPink {
- background-image: url(spritesmith-main-10.png);
- background-position: -212px -998px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Treeling-Desert {
- background-image: url(spritesmith-main-10.png);
- background-position: -318px -998px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Treeling-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -424px -998px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Treeling-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -530px -998px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Treeling-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -636px -998px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Treeling-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -742px -998px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Treeling-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -680px -544px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Treeling-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: -954px -998px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Turkey-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: 0px -1104px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Turtle-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: -106px -1104px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Turtle-CottonCandyBlue {
- background-image: url(spritesmith-main-10.png);
- background-position: -212px -1104px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Turtle-CottonCandyPink {
- background-image: url(spritesmith-main-10.png);
- background-position: -318px -1104px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Turtle-Desert {
- background-image: url(spritesmith-main-10.png);
- background-position: -424px -1104px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Turtle-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -530px -1104px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Turtle-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -636px -1104px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Turtle-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -742px -1104px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Turtle-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -848px -1104px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Turtle-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -954px -1104px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Turtle-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: -1060px -1104px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Unicorn-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: -1240px 0px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Unicorn-CottonCandyBlue {
- background-image: url(spritesmith-main-10.png);
- background-position: -1240px -106px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Unicorn-CottonCandyPink {
- background-image: url(spritesmith-main-10.png);
- background-position: -1240px -212px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Unicorn-Desert {
- background-image: url(spritesmith-main-10.png);
- background-position: -1240px -318px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Unicorn-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -1240px -424px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Unicorn-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -1240px -530px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Unicorn-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -1240px -636px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Unicorn-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -1240px -742px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Unicorn-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -1240px -848px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Unicorn-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: -1240px -954px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Whale-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: -1240px -1060px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Whale-CottonCandyBlue {
- background-image: url(spritesmith-main-10.png);
- background-position: 0px -1210px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Whale-CottonCandyPink {
- background-image: url(spritesmith-main-10.png);
- background-position: -106px -1210px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Whale-Desert {
- background-image: url(spritesmith-main-10.png);
- background-position: -212px -1210px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Whale-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -318px -1210px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Whale-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -424px -1210px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Whale-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -530px -1210px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Whale-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -636px -1210px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Whale-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -742px -1210px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Whale-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: -848px -1210px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Wolf-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: 0px 0px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Wolf-CottonCandyBlue {
+.Mount_Head_Sabretooth-Base {
background-image: url(spritesmith-main-10.png);
background-position: -544px -136px;
width: 135px;
height: 135px;
}
-.Mount_Head_Wolf-CottonCandyPink {
+.Mount_Head_Sabretooth-CottonCandyBlue {
background-image: url(spritesmith-main-10.png);
- background-position: -544px 0px;
+ background-position: 0px -136px;
width: 135px;
height: 135px;
}
-.Mount_Head_Wolf-Desert {
+.Mount_Head_Sabretooth-CottonCandyPink {
background-image: url(spritesmith-main-10.png);
- background-position: -408px -408px;
+ background-position: -136px -136px;
width: 135px;
height: 135px;
}
-.Mount_Head_Wolf-Floral {
+.Mount_Head_Sabretooth-Desert {
background-image: url(spritesmith-main-10.png);
- background-position: -272px -408px;
+ background-position: -272px 0px;
width: 135px;
height: 135px;
}
-.Mount_Head_Wolf-Golden {
+.Mount_Head_Sabretooth-Golden {
background-image: url(spritesmith-main-10.png);
- background-position: -136px -408px;
+ background-position: -272px -136px;
width: 135px;
height: 135px;
}
-.Mount_Head_Wolf-Peppermint {
- background-image: url(spritesmith-main-10.png);
- background-position: 0px -408px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Wolf-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -408px -272px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Wolf-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -408px -136px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Wolf-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -408px 0px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Wolf-Spooky {
- background-image: url(spritesmith-main-10.png);
- background-position: -272px -272px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Wolf-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -136px -272px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Wolf-Zombie {
+.Mount_Head_Sabretooth-Red {
background-image: url(spritesmith-main-10.png);
background-position: 0px -272px;
width: 135px;
height: 135px;
}
-.Mount_Icon_Axolotl-Base {
+.Mount_Head_Sabretooth-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -136px -272px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Sabretooth-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -272px -272px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Sabretooth-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -408px 0px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Sabretooth-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -408px -136px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Seahorse-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1134px -954px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Seahorse-CottonCandyBlue {
+ background-image: url(spritesmith-main-10.png);
+ background-position: 0px -1134px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Seahorse-CottonCandyPink {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -106px -1134px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Seahorse-Desert {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -212px -1134px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Seahorse-Golden {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -318px -1134px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Seahorse-Red {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -424px -1134px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Seahorse-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -530px -1134px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Seahorse-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -636px -1134px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Seahorse-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -742px -1134px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Seahorse-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1346px -530px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Sheep-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1346px -636px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Sheep-CottonCandyBlue {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1346px -742px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Sheep-CottonCandyPink {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1346px -848px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Sheep-Desert {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1346px -954px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Sheep-Golden {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1346px -1060px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Sheep-Red {
background-image: url(spritesmith-main-10.png);
background-position: -1346px -1166px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Sheep-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: 0px -1346px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Sheep-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -106px -1346px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Sheep-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -212px -1346px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Sheep-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -318px -1346px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Slime-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -424px -1346px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Slime-CottonCandyBlue {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -530px -1346px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Slime-CottonCandyPink {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -514px -680px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Slime-Desert {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -620px -680px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Slime-Golden {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -816px 0px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Slime-Red {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -816px -106px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Slime-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -816px -212px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Slime-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -816px -318px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Slime-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -816px -424px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Slime-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -816px -530px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snail-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -816px -636px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snail-CottonCandyBlue {
+ background-image: url(spritesmith-main-10.png);
+ background-position: 0px -816px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snail-CottonCandyPink {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -106px -816px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snail-Desert {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -212px -816px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snail-Golden {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -318px -816px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snail-Red {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -424px -816px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snail-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -530px -816px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snail-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -636px -816px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snail-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -742px -816px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snail-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -922px 0px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snake-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -922px -106px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snake-CottonCandyBlue {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -922px -212px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snake-CottonCandyPink {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -922px -318px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snake-Desert {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -922px -424px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snake-Golden {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -922px -530px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snake-Red {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -922px -636px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snake-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -922px -742px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snake-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: 0px -922px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snake-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -106px -922px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Snake-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -212px -922px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Spider-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -318px -922px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Spider-CottonCandyBlue {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -424px -922px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Spider-CottonCandyPink {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -530px -922px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Spider-Desert {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -636px -922px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Spider-Golden {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -742px -922px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Spider-Red {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -848px -922px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Spider-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1028px 0px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Spider-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1028px -106px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Spider-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1028px -212px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Spider-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1028px -318px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_TRex-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -408px -272px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_TRex-CottonCandyBlue {
+ background-image: url(spritesmith-main-10.png);
+ background-position: 0px -408px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_TRex-CottonCandyPink {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -136px -408px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_TRex-Desert {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -272px -408px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_TRex-Golden {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -408px -408px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_TRex-Red {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -544px 0px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_TRex-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: 0px 0px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_TRex-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -544px -272px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_TRex-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -544px -408px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_TRex-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: 0px -544px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_TigerCub-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1028px -424px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_TigerCub-CottonCandyBlue {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1028px -530px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_TigerCub-CottonCandyPink {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1028px -636px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_TigerCub-Desert {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1028px -742px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_TigerCub-Floral {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1028px -848px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_TigerCub-Golden {
+ background-image: url(spritesmith-main-10.png);
+ background-position: 0px -1028px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_TigerCub-Peppermint {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -106px -1028px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_TigerCub-Red {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -212px -1028px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_TigerCub-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -318px -1028px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_TigerCub-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -424px -1028px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_TigerCub-Spooky {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -530px -1028px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_TigerCub-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -636px -1028px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_TigerCub-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -742px -1028px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Treeling-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -848px -1028px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Treeling-CottonCandyBlue {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -954px -1028px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Treeling-CottonCandyPink {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1134px 0px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Treeling-Desert {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1134px -106px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Treeling-Golden {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1134px -212px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Treeling-Red {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1134px -318px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Treeling-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1134px -424px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Treeling-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1134px -530px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Treeling-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1134px -636px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Treeling-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1134px -742px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Turkey-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -848px -1134px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Turtle-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -954px -1134px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Turtle-CottonCandyBlue {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1060px -1134px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Turtle-CottonCandyPink {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1240px 0px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Turtle-Desert {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1240px -106px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Turtle-Golden {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1240px -212px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Turtle-Red {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1240px -318px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Turtle-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1240px -424px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Turtle-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1240px -530px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Turtle-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1240px -636px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Turtle-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1240px -742px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Unicorn-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1240px -848px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Unicorn-CottonCandyBlue {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1240px -954px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Unicorn-CottonCandyPink {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1240px -1060px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Unicorn-Desert {
+ background-image: url(spritesmith-main-10.png);
+ background-position: 0px -1240px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Unicorn-Golden {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -106px -1240px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Unicorn-Red {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -212px -1240px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Unicorn-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -318px -1240px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Unicorn-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -424px -1240px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Unicorn-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -530px -1240px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Unicorn-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -636px -1240px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Whale-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -742px -1240px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Whale-CottonCandyBlue {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -408px -680px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Whale-CottonCandyPink {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -954px -1240px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Whale-Desert {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1060px -1240px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Whale-Golden {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1166px -1240px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Whale-Red {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1346px 0px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Whale-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1346px -106px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Whale-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1346px -212px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Whale-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1346px -318px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Whale-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -1346px -424px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Wolf-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -136px -544px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Wolf-CottonCandyBlue {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -272px -544px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Wolf-CottonCandyPink {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -408px -544px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Wolf-Desert {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -544px -544px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Wolf-Floral {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -680px 0px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Wolf-Golden {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -680px -136px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Wolf-Peppermint {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -680px -272px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Wolf-Red {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -680px -408px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Wolf-Shade {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -680px -544px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Wolf-Skeleton {
+ background-image: url(spritesmith-main-10.png);
+ background-position: 0px -680px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Wolf-Spooky {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -136px -680px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Wolf-White {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -272px -680px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Head_Wolf-Zombie {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -136px 0px;
+ width: 135px;
+ height: 135px;
+}
+.Mount_Icon_Axolotl-Base {
+ background-image: url(spritesmith-main-10.png);
+ background-position: -636px -1346px;
width: 81px;
height: 99px;
}
.Mount_Icon_Axolotl-CottonCandyBlue {
background-image: url(spritesmith-main-10.png);
- background-position: 0px -1316px;
+ background-position: -1148px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Axolotl-CottonCandyPink {
background-image: url(spritesmith-main-10.png);
- background-position: -82px -1616px;
+ background-position: -718px -1346px;
width: 81px;
height: 99px;
}
.Mount_Icon_Axolotl-Desert {
background-image: url(spritesmith-main-10.png);
- background-position: -164px -1316px;
+ background-position: -800px -1346px;
width: 81px;
height: 99px;
}
.Mount_Icon_Axolotl-Golden {
background-image: url(spritesmith-main-10.png);
- background-position: -246px -1316px;
+ background-position: -882px -1346px;
width: 81px;
height: 99px;
}
.Mount_Icon_Axolotl-Red {
background-image: url(spritesmith-main-10.png);
- background-position: -328px -1316px;
+ background-position: -964px -1346px;
width: 81px;
height: 99px;
}
.Mount_Icon_Axolotl-Shade {
background-image: url(spritesmith-main-10.png);
- background-position: -410px -1316px;
+ background-position: -1046px -1346px;
width: 81px;
height: 99px;
}
.Mount_Icon_Axolotl-Skeleton {
background-image: url(spritesmith-main-10.png);
- background-position: -492px -1316px;
+ background-position: -1128px -1346px;
width: 81px;
height: 99px;
}
.Mount_Icon_Axolotl-White {
background-image: url(spritesmith-main-10.png);
- background-position: -574px -1316px;
+ background-position: -1210px -1346px;
width: 81px;
height: 99px;
}
.Mount_Icon_Axolotl-Zombie {
background-image: url(spritesmith-main-10.png);
- background-position: -656px -1316px;
+ background-position: -1292px -1346px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-Base {
background-image: url(spritesmith-main-10.png);
- background-position: -738px -1316px;
+ background-position: -1452px 0px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-CottonCandyBlue {
background-image: url(spritesmith-main-10.png);
- background-position: -820px -1316px;
+ background-position: -1452px -100px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-CottonCandyPink {
background-image: url(spritesmith-main-10.png);
- background-position: -902px -1316px;
+ background-position: -1452px -200px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-Desert {
background-image: url(spritesmith-main-10.png);
- background-position: -984px -1316px;
+ background-position: -1452px -300px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-Floral {
background-image: url(spritesmith-main-10.png);
- background-position: -1066px -1316px;
+ background-position: -1452px -400px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-Golden {
background-image: url(spritesmith-main-10.png);
- background-position: -1148px -1316px;
+ background-position: -1452px -500px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-Peppermint {
background-image: url(spritesmith-main-10.png);
- background-position: -1230px -1316px;
+ background-position: -1452px -600px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-Polar {
background-image: url(spritesmith-main-10.png);
- background-position: -1312px -1316px;
+ background-position: -1452px -700px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-Red {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px 0px;
+ background-position: -1452px -800px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-Shade {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px -100px;
+ background-position: -1452px -900px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-Skeleton {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px -200px;
+ background-position: -1452px -1000px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-Spooky {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px -300px;
+ background-position: -1452px -1100px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-White {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px -400px;
+ background-position: -1452px -1200px;
width: 81px;
height: 99px;
}
.Mount_Icon_BearCub-Zombie {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px -500px;
+ background-position: -1452px -1300px;
width: 81px;
height: 99px;
}
.Mount_Icon_Bunny-Base {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px -600px;
+ background-position: -1534px 0px;
width: 81px;
height: 99px;
}
.Mount_Icon_Bunny-CottonCandyBlue {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px -700px;
+ background-position: -1534px -100px;
width: 81px;
height: 99px;
}
.Mount_Icon_Bunny-CottonCandyPink {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px -800px;
+ background-position: -1534px -200px;
width: 81px;
height: 99px;
}
.Mount_Icon_Bunny-Desert {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px -900px;
+ background-position: -1534px -300px;
width: 81px;
height: 99px;
}
.Mount_Icon_Bunny-Golden {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px -1000px;
+ background-position: -1534px -400px;
width: 81px;
height: 99px;
}
.Mount_Icon_Bunny-Red {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px -1100px;
+ background-position: -1534px -500px;
width: 81px;
height: 99px;
}
.Mount_Icon_Bunny-Shade {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px -1200px;
+ background-position: -1534px -600px;
width: 81px;
height: 99px;
}
.Mount_Icon_Bunny-Skeleton {
background-image: url(spritesmith-main-10.png);
- background-position: -1452px -1300px;
+ background-position: -1534px -700px;
width: 81px;
height: 99px;
}
.Mount_Icon_Bunny-White {
background-image: url(spritesmith-main-10.png);
- background-position: 0px -1416px;
+ background-position: -1534px -800px;
width: 81px;
height: 99px;
}
.Mount_Icon_Bunny-Zombie {
background-image: url(spritesmith-main-10.png);
- background-position: -82px -1416px;
+ background-position: -1534px -900px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cactus-Base {
background-image: url(spritesmith-main-10.png);
- background-position: -164px -1416px;
+ background-position: -1534px -1000px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cactus-CottonCandyBlue {
background-image: url(spritesmith-main-10.png);
- background-position: -246px -1416px;
+ background-position: -1534px -1100px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cactus-CottonCandyPink {
background-image: url(spritesmith-main-10.png);
- background-position: -328px -1416px;
+ background-position: -1534px -1200px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cactus-Desert {
background-image: url(spritesmith-main-10.png);
- background-position: -410px -1416px;
+ background-position: -1534px -1300px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cactus-Floral {
background-image: url(spritesmith-main-10.png);
- background-position: -492px -1416px;
+ background-position: 0px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cactus-Golden {
background-image: url(spritesmith-main-10.png);
- background-position: -574px -1416px;
+ background-position: -82px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cactus-Peppermint {
background-image: url(spritesmith-main-10.png);
- background-position: -656px -1416px;
+ background-position: -164px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cactus-Red {
background-image: url(spritesmith-main-10.png);
- background-position: -738px -1416px;
+ background-position: -246px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cactus-Shade {
background-image: url(spritesmith-main-10.png);
- background-position: -820px -1416px;
+ background-position: -328px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cactus-Skeleton {
background-image: url(spritesmith-main-10.png);
- background-position: -902px -1416px;
+ background-position: -410px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cactus-Spooky {
background-image: url(spritesmith-main-10.png);
- background-position: -984px -1416px;
+ background-position: -492px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cactus-White {
background-image: url(spritesmith-main-10.png);
- background-position: -1066px -1416px;
+ background-position: -574px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cactus-Zombie {
background-image: url(spritesmith-main-10.png);
- background-position: -1148px -1416px;
+ background-position: -656px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cheetah-Base {
background-image: url(spritesmith-main-10.png);
- background-position: -1230px -1416px;
+ background-position: -738px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cheetah-CottonCandyBlue {
background-image: url(spritesmith-main-10.png);
- background-position: -1312px -1416px;
+ background-position: -820px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cheetah-CottonCandyPink {
background-image: url(spritesmith-main-10.png);
- background-position: -1394px -1416px;
+ background-position: -902px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cheetah-Desert {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px 0px;
+ background-position: -984px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cheetah-Golden {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -100px;
+ background-position: -1066px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cheetah-Red {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -200px;
+ background-position: -726px -680px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cheetah-Shade {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -300px;
+ background-position: -1230px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cheetah-Skeleton {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -400px;
+ background-position: -1312px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cheetah-White {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -500px;
+ background-position: -1394px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cheetah-Zombie {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -600px;
+ background-position: -1476px -1452px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cuttlefish-Base {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -700px;
+ background-position: -1616px 0px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cuttlefish-CottonCandyBlue {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -800px;
+ background-position: -1616px -100px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cuttlefish-CottonCandyPink {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -900px;
+ background-position: -1616px -200px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cuttlefish-Desert {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -1000px;
+ background-position: -1616px -300px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cuttlefish-Golden {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -1100px;
+ background-position: -1616px -400px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cuttlefish-Red {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -1200px;
+ background-position: -1616px -500px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cuttlefish-Shade {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -1300px;
+ background-position: -1616px -600px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cuttlefish-Skeleton {
background-image: url(spritesmith-main-10.png);
- background-position: -1534px -1400px;
+ background-position: -1616px -700px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cuttlefish-White {
background-image: url(spritesmith-main-10.png);
- background-position: 0px -1516px;
+ background-position: -1616px -800px;
width: 81px;
height: 99px;
}
.Mount_Icon_Cuttlefish-Zombie {
background-image: url(spritesmith-main-10.png);
- background-position: -82px -1516px;
+ background-position: -1616px -900px;
width: 81px;
height: 99px;
}
.Mount_Icon_Deer-Base {
background-image: url(spritesmith-main-10.png);
- background-position: -164px -1516px;
+ background-position: -1616px -1000px;
width: 81px;
height: 99px;
}
.Mount_Icon_Deer-CottonCandyBlue {
background-image: url(spritesmith-main-10.png);
- background-position: -246px -1516px;
+ background-position: -1616px -1100px;
width: 81px;
height: 99px;
}
.Mount_Icon_Deer-CottonCandyPink {
background-image: url(spritesmith-main-10.png);
- background-position: -328px -1516px;
+ background-position: -1616px -1200px;
width: 81px;
height: 99px;
}
.Mount_Icon_Deer-Desert {
background-image: url(spritesmith-main-10.png);
- background-position: -410px -1516px;
+ background-position: -1616px -1300px;
width: 81px;
height: 99px;
}
.Mount_Icon_Deer-Golden {
background-image: url(spritesmith-main-10.png);
- background-position: -492px -1516px;
+ background-position: -1616px -1400px;
width: 81px;
height: 99px;
}
.Mount_Icon_Deer-Red {
background-image: url(spritesmith-main-10.png);
- background-position: -574px -1516px;
+ background-position: 0px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Deer-Shade {
background-image: url(spritesmith-main-10.png);
- background-position: -656px -1516px;
+ background-position: -82px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Deer-Skeleton {
background-image: url(spritesmith-main-10.png);
- background-position: -738px -1516px;
+ background-position: -164px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Deer-White {
background-image: url(spritesmith-main-10.png);
- background-position: -820px -1516px;
+ background-position: -246px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Deer-Zombie {
background-image: url(spritesmith-main-10.png);
- background-position: -902px -1516px;
+ background-position: -328px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Dragon-Base {
background-image: url(spritesmith-main-10.png);
- background-position: -984px -1516px;
+ background-position: -410px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Dragon-CottonCandyBlue {
background-image: url(spritesmith-main-10.png);
- background-position: -1066px -1516px;
+ background-position: -492px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Dragon-CottonCandyPink {
background-image: url(spritesmith-main-10.png);
- background-position: -1148px -1516px;
+ background-position: -574px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Dragon-Desert {
background-image: url(spritesmith-main-10.png);
- background-position: -1230px -1516px;
+ background-position: -656px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Dragon-Floral {
background-image: url(spritesmith-main-10.png);
- background-position: -1312px -1516px;
+ background-position: -738px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Dragon-Golden {
background-image: url(spritesmith-main-10.png);
- background-position: -1394px -1516px;
+ background-position: -820px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Dragon-Peppermint {
background-image: url(spritesmith-main-10.png);
- background-position: -1476px -1516px;
+ background-position: -902px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Dragon-Red {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px 0px;
+ background-position: -984px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Dragon-Shade {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -100px;
+ background-position: -1066px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Dragon-Skeleton {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -200px;
+ background-position: -1148px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Dragon-Spooky {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -300px;
+ background-position: -1230px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Dragon-White {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -400px;
+ background-position: -1312px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Dragon-Zombie {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -500px;
+ background-position: -1394px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Egg-Base {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -600px;
+ background-position: -1476px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Egg-CottonCandyBlue {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -700px;
+ background-position: -1558px -1552px;
width: 81px;
height: 99px;
}
.Mount_Icon_Egg-CottonCandyPink {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -800px;
+ background-position: -1698px 0px;
width: 81px;
height: 99px;
}
.Mount_Icon_Egg-Desert {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -900px;
+ background-position: -1698px -100px;
width: 81px;
height: 99px;
}
.Mount_Icon_Egg-Golden {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -1000px;
+ background-position: -1698px -200px;
width: 81px;
height: 99px;
}
.Mount_Icon_Egg-Red {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -1100px;
+ background-position: -1698px -300px;
width: 81px;
height: 99px;
}
.Mount_Icon_Egg-Shade {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -1200px;
+ background-position: -1698px -400px;
width: 81px;
height: 99px;
}
.Mount_Icon_Egg-Skeleton {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -1300px;
+ background-position: -1698px -500px;
width: 81px;
height: 99px;
}
.Mount_Icon_Egg-White {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -1400px;
+ background-position: -1698px -600px;
width: 81px;
height: 99px;
}
.Mount_Icon_Egg-Zombie {
background-image: url(spritesmith-main-10.png);
- background-position: -1616px -1500px;
+ background-position: -1698px -700px;
width: 81px;
height: 99px;
}
.Mount_Icon_Falcon-Base {
background-image: url(spritesmith-main-10.png);
- background-position: -1698px 0px;
+ background-position: -1698px -800px;
width: 81px;
height: 99px;
}
.Mount_Icon_Falcon-CottonCandyBlue {
background-image: url(spritesmith-main-10.png);
- background-position: -1698px -100px;
+ background-position: -1698px -900px;
width: 81px;
height: 99px;
}
.Mount_Icon_Falcon-CottonCandyPink {
background-image: url(spritesmith-main-10.png);
- background-position: -1698px -200px;
+ background-position: -1698px -1000px;
width: 81px;
height: 99px;
}
.Mount_Icon_Falcon-Desert {
background-image: url(spritesmith-main-10.png);
- background-position: -1698px -300px;
+ background-position: -1698px -1100px;
width: 81px;
height: 99px;
}
.Mount_Icon_Falcon-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -1698px -400px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_Falcon-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -1698px -500px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_Falcon-Shade {
- background-image: url(spritesmith-main-10.png);
- background-position: -1698px -600px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_Falcon-Skeleton {
- background-image: url(spritesmith-main-10.png);
- background-position: -1698px -700px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_Falcon-White {
- background-image: url(spritesmith-main-10.png);
- background-position: -1698px -800px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_Falcon-Zombie {
- background-image: url(spritesmith-main-10.png);
- background-position: -1698px -900px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_FlyingPig-Base {
- background-image: url(spritesmith-main-10.png);
- background-position: -1698px -1000px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_FlyingPig-CottonCandyBlue {
- background-image: url(spritesmith-main-10.png);
- background-position: -1698px -1100px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_FlyingPig-CottonCandyPink {
background-image: url(spritesmith-main-10.png);
background-position: -1698px -1200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_FlyingPig-Desert {
- background-image: url(spritesmith-main-10.png);
- background-position: -1698px -1300px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_FlyingPig-Floral {
- background-image: url(spritesmith-main-10.png);
- background-position: -1698px -1400px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_FlyingPig-Golden {
- background-image: url(spritesmith-main-10.png);
- background-position: -1698px -1500px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_FlyingPig-Peppermint {
- background-image: url(spritesmith-main-10.png);
- background-position: 0px -1616px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_FlyingPig-Red {
- background-image: url(spritesmith-main-10.png);
- background-position: -82px -1316px;
- width: 81px;
- height: 99px;
-}
diff --git a/common/dist/sprites/spritesmith-main-10.png b/common/dist/sprites/spritesmith-main-10.png
index f2ff4ceff4..c2a72cae67 100644
Binary files a/common/dist/sprites/spritesmith-main-10.png and b/common/dist/sprites/spritesmith-main-10.png differ
diff --git a/common/dist/sprites/spritesmith-main-11.css b/common/dist/sprites/spritesmith-main-11.css
index dd947f867a..b976e22abc 100644
--- a/common/dist/sprites/spritesmith-main-11.css
+++ b/common/dist/sprites/spritesmith-main-11.css
@@ -1,1659 +1,1737 @@
-.Mount_Icon_FlyingPig-Shade {
+.Mount_Icon_Falcon-Red {
background-image: url(spritesmith-main-11.png);
- background-position: -1066px -1418px;
+ background-position: -1572px -700px;
width: 81px;
height: 99px;
}
-.Mount_Icon_FlyingPig-Skeleton {
+.Mount_Icon_Falcon-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -164px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_FlyingPig-Spooky {
+.Mount_Icon_Falcon-Skeleton {
background-image: url(spritesmith-main-11.png);
- background-position: -1148px -1418px;
+ background-position: -1572px -800px;
width: 81px;
height: 99px;
}
-.Mount_Icon_FlyingPig-White {
+.Mount_Icon_Falcon-White {
background-image: url(spritesmith-main-11.png);
- background-position: -1230px -1418px;
+ background-position: -1572px -900px;
width: 81px;
height: 99px;
}
-.Mount_Icon_FlyingPig-Zombie {
+.Mount_Icon_Falcon-Zombie {
background-image: url(spritesmith-main-11.png);
- background-position: -1312px -1418px;
+ background-position: -1572px -1000px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Fox-Base {
+.Mount_Icon_FlyingPig-Base {
background-image: url(spritesmith-main-11.png);
- background-position: -1394px -1418px;
+ background-position: -1572px -1100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Fox-CottonCandyBlue {
+.Mount_Icon_FlyingPig-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
- background-position: -1476px -1418px;
+ background-position: -1572px -1200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Fox-CottonCandyPink {
+.Mount_Icon_FlyingPig-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px 0px;
+ background-position: -1572px -1300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Fox-Desert {
+.Mount_Icon_FlyingPig-Desert {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -100px;
+ background-position: -1572px -1400px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Fox-Floral {
+.Mount_Icon_FlyingPig-Floral {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -200px;
+ background-position: 0px -1518px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Fox-Golden {
+.Mount_Icon_FlyingPig-Golden {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -300px;
+ background-position: -82px -1518px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Fox-Peppermint {
+.Mount_Icon_FlyingPig-Peppermint {
background-image: url(spritesmith-main-11.png);
background-position: -318px -206px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Fox-Red {
+.Mount_Icon_FlyingPig-Red {
background-image: url(spritesmith-main-11.png);
background-position: 0px -318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Fox-Shade {
+.Mount_Icon_FlyingPig-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -82px -318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Fox-Skeleton {
+.Mount_Icon_FlyingPig-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -164px -318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Fox-Spooky {
+.Mount_Icon_FlyingPig-Spooky {
background-image: url(spritesmith-main-11.png);
background-position: -246px -318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Fox-White {
+.Mount_Icon_FlyingPig-White {
background-image: url(spritesmith-main-11.png);
background-position: -328px -318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Fox-Zombie {
+.Mount_Icon_FlyingPig-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -424px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Frog-Base {
+.Mount_Icon_Fox-Base {
background-image: url(spritesmith-main-11.png);
background-position: -424px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Frog-CottonCandyBlue {
+.Mount_Icon_Fox-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -424px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Frog-CottonCandyPink {
+.Mount_Icon_Fox-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -424px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Frog-Desert {
+.Mount_Icon_Fox-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -506px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Frog-Golden {
+.Mount_Icon_Fox-Floral {
background-image: url(spritesmith-main-11.png);
background-position: -506px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Frog-Red {
+.Mount_Icon_Fox-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -506px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Frog-Shade {
+.Mount_Icon_Fox-Peppermint {
background-image: url(spritesmith-main-11.png);
background-position: -506px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Frog-Skeleton {
+.Mount_Icon_Fox-Red {
background-image: url(spritesmith-main-11.png);
background-position: 0px -418px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Frog-White {
+.Mount_Icon_Fox-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -82px -418px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Frog-Zombie {
+.Mount_Icon_Fox-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -164px -418px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Gryphon-Base {
+.Mount_Icon_Fox-Spooky {
background-image: url(spritesmith-main-11.png);
background-position: -246px -418px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Gryphon-CottonCandyBlue {
+.Mount_Icon_Fox-White {
background-image: url(spritesmith-main-11.png);
background-position: -328px -418px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Gryphon-CottonCandyPink {
+.Mount_Icon_Fox-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -410px -418px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Gryphon-Desert {
+.Mount_Icon_Frog-Base {
background-image: url(spritesmith-main-11.png);
background-position: -492px -418px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Gryphon-Golden {
+.Mount_Icon_Frog-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -588px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Gryphon-Red {
+.Mount_Icon_Frog-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -588px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Gryphon-RoyalPurple {
+.Mount_Icon_Frog-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -588px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Gryphon-Shade {
+.Mount_Icon_Frog-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -588px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Gryphon-Skeleton {
+.Mount_Icon_Frog-Red {
background-image: url(spritesmith-main-11.png);
background-position: -588px -400px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Gryphon-White {
+.Mount_Icon_Frog-Shade {
background-image: url(spritesmith-main-11.png);
background-position: 0px -518px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Gryphon-Zombie {
+.Mount_Icon_Frog-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -82px -518px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Hedgehog-Base {
+.Mount_Icon_Frog-White {
background-image: url(spritesmith-main-11.png);
background-position: -164px -518px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Hedgehog-CottonCandyBlue {
+.Mount_Icon_Frog-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -246px -518px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Hedgehog-CottonCandyPink {
+.Mount_Icon_Gryphon-Base {
background-image: url(spritesmith-main-11.png);
background-position: -328px -518px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Hedgehog-Desert {
+.Mount_Icon_Gryphon-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -410px -518px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Hedgehog-Golden {
+.Mount_Icon_Gryphon-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -492px -518px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Hedgehog-Red {
+.Mount_Icon_Gryphon-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -574px -518px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Hedgehog-Shade {
+.Mount_Icon_Gryphon-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -670px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Hedgehog-Skeleton {
+.Mount_Icon_Gryphon-Red {
background-image: url(spritesmith-main-11.png);
background-position: -670px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Hedgehog-White {
+.Mount_Icon_Gryphon-RoyalPurple {
background-image: url(spritesmith-main-11.png);
background-position: -670px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Hedgehog-Zombie {
+.Mount_Icon_Gryphon-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -670px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Horse-Base {
+.Mount_Icon_Gryphon-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -670px -400px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Horse-CottonCandyBlue {
+.Mount_Icon_Gryphon-White {
background-image: url(spritesmith-main-11.png);
background-position: -670px -500px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Horse-CottonCandyPink {
+.Mount_Icon_Gryphon-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: 0px -618px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Horse-Desert {
+.Mount_Icon_Hedgehog-Base {
background-image: url(spritesmith-main-11.png);
background-position: -82px -618px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Horse-Golden {
+.Mount_Icon_Hedgehog-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -164px -618px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Horse-Red {
+.Mount_Icon_Hedgehog-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -246px -618px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Horse-Shade {
+.Mount_Icon_Hedgehog-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -328px -618px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Horse-Skeleton {
+.Mount_Icon_Hedgehog-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -410px -618px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Horse-White {
+.Mount_Icon_Hedgehog-Red {
background-image: url(spritesmith-main-11.png);
background-position: -492px -618px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Horse-Zombie {
+.Mount_Icon_Hedgehog-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -574px -618px;
width: 81px;
height: 99px;
}
-.Mount_Icon_JackOLantern-Base {
+.Mount_Icon_Hedgehog-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -656px -618px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-Base {
+.Mount_Icon_Hedgehog-White {
background-image: url(spritesmith-main-11.png);
background-position: -752px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-CottonCandyBlue {
+.Mount_Icon_Hedgehog-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -752px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-CottonCandyPink {
+.Mount_Icon_Horse-Base {
background-image: url(spritesmith-main-11.png);
background-position: -752px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-Desert {
+.Mount_Icon_Horse-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -752px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-Ethereal {
+.Mount_Icon_Horse-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -752px -400px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-Floral {
+.Mount_Icon_Horse-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -752px -500px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-Golden {
+.Mount_Icon_Horse-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -752px -600px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-Peppermint {
+.Mount_Icon_Horse-Red {
background-image: url(spritesmith-main-11.png);
background-position: 0px -718px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-Red {
+.Mount_Icon_Horse-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -82px -718px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-Shade {
+.Mount_Icon_Horse-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -164px -718px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-Skeleton {
+.Mount_Icon_Horse-White {
background-image: url(spritesmith-main-11.png);
background-position: -246px -718px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-Spooky {
+.Mount_Icon_Horse-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -328px -718px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-White {
+.Mount_Icon_JackOLantern-Base {
background-image: url(spritesmith-main-11.png);
background-position: -410px -718px;
width: 81px;
height: 99px;
}
-.Mount_Icon_LionCub-Zombie {
+.Mount_Icon_LionCub-Base {
background-image: url(spritesmith-main-11.png);
background-position: -492px -718px;
width: 81px;
height: 99px;
}
-.Mount_Icon_MagicalBee-Base {
+.Mount_Icon_LionCub-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -574px -718px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Mammoth-Base {
+.Mount_Icon_LionCub-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -656px -718px;
width: 81px;
height: 99px;
}
-.Mount_Icon_MantisShrimp-Base {
+.Mount_Icon_LionCub-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -738px -718px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Monkey-Base {
+.Mount_Icon_LionCub-Ethereal {
background-image: url(spritesmith-main-11.png);
background-position: -834px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Monkey-CottonCandyBlue {
+.Mount_Icon_LionCub-Floral {
background-image: url(spritesmith-main-11.png);
background-position: -834px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Monkey-CottonCandyPink {
+.Mount_Icon_LionCub-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -834px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Monkey-Desert {
+.Mount_Icon_LionCub-Peppermint {
background-image: url(spritesmith-main-11.png);
background-position: -834px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Monkey-Golden {
+.Mount_Icon_LionCub-Red {
background-image: url(spritesmith-main-11.png);
background-position: -834px -400px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Monkey-Red {
+.Mount_Icon_LionCub-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -834px -500px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Monkey-Shade {
+.Mount_Icon_LionCub-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -834px -600px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Monkey-Skeleton {
+.Mount_Icon_LionCub-Spooky {
background-image: url(spritesmith-main-11.png);
background-position: -834px -700px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Monkey-White {
+.Mount_Icon_LionCub-White {
background-image: url(spritesmith-main-11.png);
background-position: -916px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Monkey-Zombie {
+.Mount_Icon_LionCub-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -916px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Octopus-Base {
+.Mount_Icon_MagicalBee-Base {
background-image: url(spritesmith-main-11.png);
background-position: -916px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Octopus-CottonCandyBlue {
+.Mount_Icon_Mammoth-Base {
background-image: url(spritesmith-main-11.png);
background-position: -916px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Octopus-CottonCandyPink {
+.Mount_Icon_MantisShrimp-Base {
background-image: url(spritesmith-main-11.png);
background-position: -916px -400px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Octopus-Desert {
+.Mount_Icon_Monkey-Base {
background-image: url(spritesmith-main-11.png);
background-position: -916px -500px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Octopus-Golden {
+.Mount_Icon_Monkey-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -916px -600px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Octopus-Red {
+.Mount_Icon_Monkey-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -916px -700px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Octopus-Shade {
+.Mount_Icon_Monkey-Desert {
background-image: url(spritesmith-main-11.png);
background-position: 0px -818px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Octopus-Skeleton {
+.Mount_Icon_Monkey-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -82px -818px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Octopus-White {
+.Mount_Icon_Monkey-Red {
background-image: url(spritesmith-main-11.png);
background-position: -164px -818px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Octopus-Zombie {
+.Mount_Icon_Monkey-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -246px -818px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Orca-Base {
+.Mount_Icon_Monkey-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -328px -818px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Owl-Base {
+.Mount_Icon_Monkey-White {
background-image: url(spritesmith-main-11.png);
background-position: -410px -818px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Owl-CottonCandyBlue {
+.Mount_Icon_Monkey-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -492px -818px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Owl-CottonCandyPink {
+.Mount_Icon_Octopus-Base {
background-image: url(spritesmith-main-11.png);
background-position: -574px -818px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Owl-Desert {
+.Mount_Icon_Octopus-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -656px -818px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Owl-Golden {
+.Mount_Icon_Octopus-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -738px -818px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Owl-Red {
+.Mount_Icon_Octopus-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -820px -818px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Owl-Shade {
+.Mount_Icon_Octopus-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -902px -818px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Owl-Skeleton {
+.Mount_Icon_Octopus-Red {
background-image: url(spritesmith-main-11.png);
background-position: -998px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Owl-White {
+.Mount_Icon_Octopus-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -998px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Owl-Zombie {
+.Mount_Icon_Octopus-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -998px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_PandaCub-Base {
+.Mount_Icon_Octopus-White {
background-image: url(spritesmith-main-11.png);
background-position: -998px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_PandaCub-CottonCandyBlue {
+.Mount_Icon_Octopus-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -998px -400px;
width: 81px;
height: 99px;
}
-.Mount_Icon_PandaCub-CottonCandyPink {
+.Mount_Icon_Orca-Base {
background-image: url(spritesmith-main-11.png);
background-position: -998px -500px;
width: 81px;
height: 99px;
}
-.Mount_Icon_PandaCub-Desert {
+.Mount_Icon_Owl-Base {
background-image: url(spritesmith-main-11.png);
background-position: -998px -600px;
width: 81px;
height: 99px;
}
-.Mount_Icon_PandaCub-Floral {
+.Mount_Icon_Owl-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -998px -700px;
width: 81px;
height: 99px;
}
-.Mount_Icon_PandaCub-Golden {
+.Mount_Icon_Owl-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -998px -800px;
width: 81px;
height: 99px;
}
-.Mount_Icon_PandaCub-Peppermint {
+.Mount_Icon_Owl-Desert {
background-image: url(spritesmith-main-11.png);
background-position: 0px -918px;
width: 81px;
height: 99px;
}
-.Mount_Icon_PandaCub-Red {
+.Mount_Icon_Owl-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -82px -918px;
width: 81px;
height: 99px;
}
-.Mount_Icon_PandaCub-Shade {
+.Mount_Icon_Owl-Red {
background-image: url(spritesmith-main-11.png);
background-position: -164px -918px;
width: 81px;
height: 99px;
}
-.Mount_Icon_PandaCub-Skeleton {
+.Mount_Icon_Owl-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -246px -918px;
width: 81px;
height: 99px;
}
-.Mount_Icon_PandaCub-Spooky {
+.Mount_Icon_Owl-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -328px -918px;
width: 81px;
height: 99px;
}
-.Mount_Icon_PandaCub-White {
+.Mount_Icon_Owl-White {
background-image: url(spritesmith-main-11.png);
background-position: -410px -918px;
width: 81px;
height: 99px;
}
-.Mount_Icon_PandaCub-Zombie {
+.Mount_Icon_Owl-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -492px -918px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Parrot-Base {
+.Mount_Icon_PandaCub-Base {
background-image: url(spritesmith-main-11.png);
background-position: -574px -918px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Parrot-CottonCandyBlue {
+.Mount_Icon_PandaCub-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -656px -918px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Parrot-CottonCandyPink {
+.Mount_Icon_PandaCub-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -738px -918px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Parrot-Desert {
+.Mount_Icon_PandaCub-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -820px -918px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Parrot-Golden {
+.Mount_Icon_PandaCub-Floral {
background-image: url(spritesmith-main-11.png);
background-position: -902px -918px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Parrot-Red {
+.Mount_Icon_PandaCub-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -984px -918px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Parrot-Shade {
+.Mount_Icon_PandaCub-Peppermint {
background-image: url(spritesmith-main-11.png);
background-position: -1080px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Parrot-Skeleton {
+.Mount_Icon_PandaCub-Red {
background-image: url(spritesmith-main-11.png);
background-position: -1080px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Parrot-White {
+.Mount_Icon_PandaCub-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -1080px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Parrot-Zombie {
+.Mount_Icon_PandaCub-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -1080px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Penguin-Base {
+.Mount_Icon_PandaCub-Spooky {
background-image: url(spritesmith-main-11.png);
background-position: -1080px -400px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Penguin-CottonCandyBlue {
+.Mount_Icon_PandaCub-White {
background-image: url(spritesmith-main-11.png);
background-position: -1080px -500px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Penguin-CottonCandyPink {
+.Mount_Icon_PandaCub-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -1080px -600px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Penguin-Desert {
+.Mount_Icon_Parrot-Base {
background-image: url(spritesmith-main-11.png);
background-position: -1080px -700px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Penguin-Golden {
+.Mount_Icon_Parrot-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -1080px -800px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Penguin-Red {
+.Mount_Icon_Parrot-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -1080px -900px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Penguin-Shade {
+.Mount_Icon_Parrot-Desert {
background-image: url(spritesmith-main-11.png);
background-position: 0px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Penguin-Skeleton {
+.Mount_Icon_Parrot-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -82px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Penguin-White {
+.Mount_Icon_Parrot-Red {
background-image: url(spritesmith-main-11.png);
background-position: -164px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Penguin-Zombie {
+.Mount_Icon_Parrot-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -246px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Phoenix-Base {
+.Mount_Icon_Parrot-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -328px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rat-Base {
+.Mount_Icon_Parrot-White {
background-image: url(spritesmith-main-11.png);
background-position: -410px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rat-CottonCandyBlue {
+.Mount_Icon_Parrot-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -492px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rat-CottonCandyPink {
+.Mount_Icon_Penguin-Base {
background-image: url(spritesmith-main-11.png);
background-position: -574px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rat-Desert {
+.Mount_Icon_Penguin-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -656px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rat-Golden {
+.Mount_Icon_Penguin-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -738px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rat-Red {
+.Mount_Icon_Penguin-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -820px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rat-Shade {
+.Mount_Icon_Penguin-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -902px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rat-Skeleton {
+.Mount_Icon_Penguin-Red {
background-image: url(spritesmith-main-11.png);
background-position: -984px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rat-White {
+.Mount_Icon_Penguin-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -1066px -1018px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rat-Zombie {
+.Mount_Icon_Penguin-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -1162px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rock-Base {
+.Mount_Icon_Penguin-White {
background-image: url(spritesmith-main-11.png);
background-position: -1162px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rock-CottonCandyBlue {
+.Mount_Icon_Penguin-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -1162px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rock-CottonCandyPink {
+.Mount_Icon_Phoenix-Base {
background-image: url(spritesmith-main-11.png);
background-position: -1162px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rock-Desert {
+.Mount_Icon_Rat-Base {
background-image: url(spritesmith-main-11.png);
background-position: -1162px -400px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rock-Golden {
+.Mount_Icon_Rat-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -1162px -500px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rock-Red {
+.Mount_Icon_Rat-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -1162px -600px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rock-Shade {
+.Mount_Icon_Rat-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -1162px -700px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rock-Skeleton {
+.Mount_Icon_Rat-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -1162px -800px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rock-White {
+.Mount_Icon_Rat-Red {
background-image: url(spritesmith-main-11.png);
background-position: -1162px -900px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rock-Zombie {
+.Mount_Icon_Rat-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -1162px -1000px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rooster-Base {
+.Mount_Icon_Rat-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: 0px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rooster-CottonCandyBlue {
+.Mount_Icon_Rat-White {
background-image: url(spritesmith-main-11.png);
background-position: -82px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rooster-CottonCandyPink {
+.Mount_Icon_Rat-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -318px -106px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rooster-Desert {
+.Mount_Icon_Rock-Base {
background-image: url(spritesmith-main-11.png);
background-position: -246px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rooster-Golden {
+.Mount_Icon_Rock-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -328px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rooster-Red {
+.Mount_Icon_Rock-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -410px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rooster-Shade {
+.Mount_Icon_Rock-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -492px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rooster-Skeleton {
+.Mount_Icon_Rock-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -574px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rooster-White {
+.Mount_Icon_Rock-Red {
background-image: url(spritesmith-main-11.png);
background-position: -656px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Rooster-Zombie {
+.Mount_Icon_Rock-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -738px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sabretooth-Base {
+.Mount_Icon_Rock-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -820px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sabretooth-CottonCandyBlue {
+.Mount_Icon_Rock-White {
background-image: url(spritesmith-main-11.png);
background-position: -902px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sabretooth-CottonCandyPink {
+.Mount_Icon_Rock-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -984px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sabretooth-Desert {
+.Mount_Icon_Rooster-Base {
background-image: url(spritesmith-main-11.png);
background-position: -1066px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sabretooth-Golden {
+.Mount_Icon_Rooster-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -1148px -1118px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sabretooth-Red {
+.Mount_Icon_Rooster-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -1244px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sabretooth-Shade {
+.Mount_Icon_Rooster-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -1244px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sabretooth-Skeleton {
+.Mount_Icon_Rooster-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -1244px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sabretooth-White {
+.Mount_Icon_Rooster-Red {
background-image: url(spritesmith-main-11.png);
background-position: -1244px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sabretooth-Zombie {
+.Mount_Icon_Rooster-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -1244px -400px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Seahorse-Base {
+.Mount_Icon_Rooster-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -1244px -500px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Seahorse-CottonCandyBlue {
+.Mount_Icon_Rooster-White {
background-image: url(spritesmith-main-11.png);
background-position: -1244px -600px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Seahorse-CottonCandyPink {
+.Mount_Icon_Rooster-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -1244px -700px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Seahorse-Desert {
+.Mount_Icon_Sabretooth-Base {
background-image: url(spritesmith-main-11.png);
background-position: -1244px -800px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Seahorse-Golden {
+.Mount_Icon_Sabretooth-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -1244px -900px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Seahorse-Red {
+.Mount_Icon_Sabretooth-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -1244px -1000px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Seahorse-Shade {
+.Mount_Icon_Sabretooth-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -1244px -1100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Seahorse-Skeleton {
+.Mount_Icon_Sabretooth-Golden {
background-image: url(spritesmith-main-11.png);
background-position: 0px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Seahorse-White {
+.Mount_Icon_Sabretooth-Red {
background-image: url(spritesmith-main-11.png);
background-position: -82px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Seahorse-Zombie {
+.Mount_Icon_Sabretooth-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -164px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sheep-Base {
+.Mount_Icon_Sabretooth-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -246px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sheep-CottonCandyBlue {
+.Mount_Icon_Sabretooth-White {
background-image: url(spritesmith-main-11.png);
background-position: -328px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sheep-CottonCandyPink {
+.Mount_Icon_Sabretooth-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -410px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sheep-Desert {
+.Mount_Icon_Seahorse-Base {
background-image: url(spritesmith-main-11.png);
background-position: -492px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sheep-Golden {
+.Mount_Icon_Seahorse-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -574px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sheep-Red {
+.Mount_Icon_Seahorse-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -656px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sheep-Shade {
+.Mount_Icon_Seahorse-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -738px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sheep-Skeleton {
+.Mount_Icon_Seahorse-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -820px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sheep-White {
+.Mount_Icon_Seahorse-Red {
background-image: url(spritesmith-main-11.png);
background-position: -902px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Sheep-Zombie {
+.Mount_Icon_Seahorse-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -984px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Slime-Base {
+.Mount_Icon_Seahorse-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -1066px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Slime-CottonCandyBlue {
+.Mount_Icon_Seahorse-White {
background-image: url(spritesmith-main-11.png);
background-position: -1148px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Slime-CottonCandyPink {
+.Mount_Icon_Seahorse-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -1230px -1218px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Slime-Desert {
+.Mount_Icon_Sheep-Base {
background-image: url(spritesmith-main-11.png);
background-position: -1326px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Slime-Golden {
+.Mount_Icon_Sheep-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -1326px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Slime-Red {
+.Mount_Icon_Sheep-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -1326px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Slime-Shade {
+.Mount_Icon_Sheep-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -1326px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Slime-Skeleton {
+.Mount_Icon_Sheep-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -1326px -400px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Slime-White {
+.Mount_Icon_Sheep-Red {
background-image: url(spritesmith-main-11.png);
background-position: -1326px -500px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Slime-Zombie {
+.Mount_Icon_Sheep-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -1326px -600px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snail-Base {
+.Mount_Icon_Sheep-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -1326px -700px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snail-CottonCandyBlue {
+.Mount_Icon_Sheep-White {
background-image: url(spritesmith-main-11.png);
background-position: -1326px -800px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snail-CottonCandyPink {
+.Mount_Icon_Sheep-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -1326px -900px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snail-Desert {
+.Mount_Icon_Slime-Base {
background-image: url(spritesmith-main-11.png);
background-position: -1326px -1000px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snail-Golden {
+.Mount_Icon_Slime-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -1326px -1100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snail-Red {
+.Mount_Icon_Slime-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -1326px -1200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snail-Shade {
+.Mount_Icon_Slime-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -1408px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snail-Skeleton {
+.Mount_Icon_Slime-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -1408px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snail-White {
+.Mount_Icon_Slime-Red {
background-image: url(spritesmith-main-11.png);
background-position: -1408px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snail-Zombie {
+.Mount_Icon_Slime-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -1408px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snake-Base {
+.Mount_Icon_Slime-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -1408px -400px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snake-CottonCandyBlue {
+.Mount_Icon_Slime-White {
background-image: url(spritesmith-main-11.png);
background-position: -1408px -500px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snake-CottonCandyPink {
+.Mount_Icon_Slime-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -1408px -600px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snake-Desert {
+.Mount_Icon_Snail-Base {
background-image: url(spritesmith-main-11.png);
background-position: -1408px -700px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snake-Golden {
+.Mount_Icon_Snail-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -1408px -800px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snake-Red {
+.Mount_Icon_Snail-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -1408px -900px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snake-Shade {
+.Mount_Icon_Snail-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -1408px -1000px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snake-Skeleton {
+.Mount_Icon_Snail-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -1408px -1100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snake-White {
+.Mount_Icon_Snail-Red {
background-image: url(spritesmith-main-11.png);
background-position: -1408px -1200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Snake-Zombie {
+.Mount_Icon_Snail-Shade {
background-image: url(spritesmith-main-11.png);
background-position: 0px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Spider-Base {
+.Mount_Icon_Snail-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -82px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Spider-CottonCandyBlue {
+.Mount_Icon_Snail-White {
background-image: url(spritesmith-main-11.png);
background-position: -164px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Spider-CottonCandyPink {
+.Mount_Icon_Snail-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -246px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Spider-Desert {
+.Mount_Icon_Snake-Base {
background-image: url(spritesmith-main-11.png);
background-position: -328px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Spider-Golden {
+.Mount_Icon_Snake-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -410px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Spider-Red {
+.Mount_Icon_Snake-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -492px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Spider-Shade {
+.Mount_Icon_Snake-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -574px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Spider-Skeleton {
+.Mount_Icon_Snake-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -656px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Spider-White {
+.Mount_Icon_Snake-Red {
background-image: url(spritesmith-main-11.png);
background-position: -738px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Spider-Zombie {
+.Mount_Icon_Snake-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -820px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_TRex-Base {
- background-image: url(spritesmith-main-11.png);
- background-position: -164px -1418px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_TRex-CottonCandyBlue {
- background-image: url(spritesmith-main-11.png);
- background-position: -246px -1418px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_TRex-CottonCandyPink {
- background-image: url(spritesmith-main-11.png);
- background-position: -328px -1418px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_TRex-Desert {
- background-image: url(spritesmith-main-11.png);
- background-position: -410px -1418px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_TRex-Golden {
- background-image: url(spritesmith-main-11.png);
- background-position: -492px -1418px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_TRex-Red {
- background-image: url(spritesmith-main-11.png);
- background-position: -574px -1418px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_TRex-Shade {
- background-image: url(spritesmith-main-11.png);
- background-position: -656px -1418px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_TRex-Skeleton {
- background-image: url(spritesmith-main-11.png);
- background-position: -738px -1418px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_TRex-White {
- background-image: url(spritesmith-main-11.png);
- background-position: -820px -1418px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_TRex-Zombie {
- background-image: url(spritesmith-main-11.png);
- background-position: -902px -1418px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_TigerCub-Base {
+.Mount_Icon_Snake-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -902px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_TigerCub-CottonCandyBlue {
+.Mount_Icon_Snake-White {
background-image: url(spritesmith-main-11.png);
background-position: -984px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_TigerCub-CottonCandyPink {
+.Mount_Icon_Snake-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -1066px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_TigerCub-Desert {
+.Mount_Icon_Spider-Base {
background-image: url(spritesmith-main-11.png);
background-position: -1148px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_TigerCub-Floral {
+.Mount_Icon_Spider-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -1230px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_TigerCub-Golden {
+.Mount_Icon_Spider-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -1312px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_TigerCub-Peppermint {
+.Mount_Icon_Spider-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -1394px -1318px;
width: 81px;
height: 99px;
}
-.Mount_Icon_TigerCub-Red {
+.Mount_Icon_Spider-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -1490px 0px;
width: 81px;
height: 99px;
}
-.Mount_Icon_TigerCub-Shade {
+.Mount_Icon_Spider-Red {
background-image: url(spritesmith-main-11.png);
background-position: -1490px -100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_TigerCub-Skeleton {
+.Mount_Icon_Spider-Shade {
background-image: url(spritesmith-main-11.png);
background-position: -1490px -200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_TigerCub-Spooky {
+.Mount_Icon_Spider-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -1490px -300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_TigerCub-White {
+.Mount_Icon_Spider-White {
background-image: url(spritesmith-main-11.png);
background-position: -1490px -400px;
width: 81px;
height: 99px;
}
-.Mount_Icon_TigerCub-Zombie {
+.Mount_Icon_Spider-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -1490px -500px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Treeling-Base {
+.Mount_Icon_TRex-Base {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -1230px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_TRex-CottonCandyBlue {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -1312px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_TRex-CottonCandyPink {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -1394px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_TRex-Desert {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -1476px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_TRex-Golden {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -1572px 0px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_TRex-Red {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -1572px -100px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_TRex-Shade {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -1572px -200px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_TRex-Skeleton {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -1572px -300px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_TRex-White {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -1572px -400px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_TRex-Zombie {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -1572px -500px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_TigerCub-Base {
background-image: url(spritesmith-main-11.png);
background-position: -1490px -600px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Treeling-CottonCandyBlue {
+.Mount_Icon_TigerCub-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
background-position: -1490px -700px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Treeling-CottonCandyPink {
+.Mount_Icon_TigerCub-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
background-position: -1490px -800px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Treeling-Desert {
+.Mount_Icon_TigerCub-Desert {
background-image: url(spritesmith-main-11.png);
background-position: -1490px -900px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Treeling-Golden {
+.Mount_Icon_TigerCub-Floral {
background-image: url(spritesmith-main-11.png);
background-position: -1490px -1000px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Treeling-Red {
+.Mount_Icon_TigerCub-Golden {
background-image: url(spritesmith-main-11.png);
background-position: -1490px -1100px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Treeling-Shade {
+.Mount_Icon_TigerCub-Peppermint {
background-image: url(spritesmith-main-11.png);
background-position: -1490px -1200px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Treeling-Skeleton {
+.Mount_Icon_TigerCub-Red {
background-image: url(spritesmith-main-11.png);
background-position: -1490px -1300px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Treeling-White {
+.Mount_Icon_TigerCub-Shade {
background-image: url(spritesmith-main-11.png);
background-position: 0px -1418px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Treeling-Zombie {
+.Mount_Icon_TigerCub-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -82px -1418px;
width: 81px;
height: 99px;
}
-.Mount_Icon_Turkey-Base {
+.Mount_Icon_TigerCub-Spooky {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -164px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_TigerCub-White {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -246px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_TigerCub-Zombie {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -328px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_Treeling-Base {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -410px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_Treeling-CottonCandyBlue {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -492px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_Treeling-CottonCandyPink {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -574px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_Treeling-Desert {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -656px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_Treeling-Golden {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -738px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_Treeling-Red {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -820px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_Treeling-Shade {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -902px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_Treeling-Skeleton {
background-image: url(spritesmith-main-11.png);
background-position: -984px -1418px;
width: 81px;
height: 99px;
}
+.Mount_Icon_Treeling-White {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -1066px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_Treeling-Zombie {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -1148px -1418px;
+ width: 81px;
+ height: 99px;
+}
+.Mount_Icon_Turkey-Base {
+ background-image: url(spritesmith-main-11.png);
+ background-position: -1572px -600px;
+ width: 81px;
+ height: 99px;
+}
.Mount_Icon_Turtle-Base {
background-image: url(spritesmith-main-11.png);
background-position: -212px -106px;
@@ -1716,257 +1794,179 @@
}
.Mount_Icon_Unicorn-Base {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -400px;
+ background-position: -164px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Unicorn-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -500px;
+ background-position: -246px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Unicorn-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -600px;
+ background-position: -328px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Unicorn-Desert {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -700px;
+ background-position: -410px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Unicorn-Golden {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -800px;
+ background-position: -492px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Unicorn-Red {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -900px;
+ background-position: -574px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Unicorn-Shade {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -1000px;
+ background-position: -656px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Unicorn-Skeleton {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -1100px;
+ background-position: -738px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Unicorn-White {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -1200px;
+ background-position: -820px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Unicorn-Zombie {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -1300px;
+ background-position: -902px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Whale-Base {
background-image: url(spritesmith-main-11.png);
- background-position: -1572px -1400px;
+ background-position: -984px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Whale-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
- background-position: 0px -1518px;
+ background-position: -1066px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Whale-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
- background-position: -82px -1518px;
+ background-position: -1148px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Whale-Desert {
background-image: url(spritesmith-main-11.png);
- background-position: -164px -1518px;
+ background-position: -1230px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Whale-Golden {
background-image: url(spritesmith-main-11.png);
- background-position: -246px -1518px;
+ background-position: -1312px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Whale-Red {
background-image: url(spritesmith-main-11.png);
- background-position: -328px -1518px;
+ background-position: -1394px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Whale-Shade {
background-image: url(spritesmith-main-11.png);
- background-position: -410px -1518px;
+ background-position: -1476px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Whale-Skeleton {
background-image: url(spritesmith-main-11.png);
- background-position: -492px -1518px;
+ background-position: -1558px -1518px;
width: 81px;
height: 99px;
}
.Mount_Icon_Whale-White {
background-image: url(spritesmith-main-11.png);
- background-position: -574px -1518px;
+ background-position: -1654px 0px;
width: 81px;
height: 99px;
}
.Mount_Icon_Whale-Zombie {
background-image: url(spritesmith-main-11.png);
- background-position: -656px -1518px;
+ background-position: -1654px -100px;
width: 81px;
height: 99px;
}
.Mount_Icon_Wolf-Base {
background-image: url(spritesmith-main-11.png);
- background-position: -738px -1518px;
+ background-position: -1654px -200px;
width: 81px;
height: 99px;
}
.Mount_Icon_Wolf-CottonCandyBlue {
background-image: url(spritesmith-main-11.png);
- background-position: -820px -1518px;
+ background-position: -1654px -300px;
width: 81px;
height: 99px;
}
.Mount_Icon_Wolf-CottonCandyPink {
background-image: url(spritesmith-main-11.png);
- background-position: -902px -1518px;
+ background-position: -1654px -400px;
width: 81px;
height: 99px;
}
.Mount_Icon_Wolf-Desert {
background-image: url(spritesmith-main-11.png);
- background-position: -984px -1518px;
+ background-position: -1654px -500px;
width: 81px;
height: 99px;
}
.Mount_Icon_Wolf-Floral {
background-image: url(spritesmith-main-11.png);
- background-position: -1066px -1518px;
+ background-position: -1654px -600px;
width: 81px;
height: 99px;
}
.Mount_Icon_Wolf-Golden {
background-image: url(spritesmith-main-11.png);
- background-position: -1148px -1518px;
+ background-position: -1654px -700px;
width: 81px;
height: 99px;
}
.Mount_Icon_Wolf-Peppermint {
background-image: url(spritesmith-main-11.png);
- background-position: -1230px -1518px;
+ background-position: -1654px -800px;
width: 81px;
height: 99px;
}
.Mount_Icon_Wolf-Red {
background-image: url(spritesmith-main-11.png);
- background-position: -1312px -1518px;
+ background-position: -1654px -900px;
width: 81px;
height: 99px;
}
.Mount_Icon_Wolf-Shade {
background-image: url(spritesmith-main-11.png);
- background-position: -1394px -1518px;
+ background-position: -1654px -1000px;
width: 81px;
height: 99px;
}
.Mount_Icon_Wolf-Skeleton {
- background-image: url(spritesmith-main-11.png);
- background-position: -1476px -1518px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_Wolf-Spooky {
- background-image: url(spritesmith-main-11.png);
- background-position: -1558px -1518px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_Wolf-White {
- background-image: url(spritesmith-main-11.png);
- background-position: -1654px 0px;
- width: 81px;
- height: 99px;
-}
-.Mount_Icon_Wolf-Zombie {
- background-image: url(spritesmith-main-11.png);
- background-position: -1654px -100px;
- width: 81px;
- height: 99px;
-}
-.Pet-Axolotl-Base {
- background-image: url(spritesmith-main-11.png);
- background-position: -1654px -200px;
- width: 81px;
- height: 99px;
-}
-.Pet-Axolotl-CottonCandyBlue {
- background-image: url(spritesmith-main-11.png);
- background-position: -1654px -300px;
- width: 81px;
- height: 99px;
-}
-.Pet-Axolotl-CottonCandyPink {
- background-image: url(spritesmith-main-11.png);
- background-position: -1654px -400px;
- width: 81px;
- height: 99px;
-}
-.Pet-Axolotl-Desert {
- background-image: url(spritesmith-main-11.png);
- background-position: -1654px -500px;
- width: 81px;
- height: 99px;
-}
-.Pet-Axolotl-Golden {
- background-image: url(spritesmith-main-11.png);
- background-position: -1654px -600px;
- width: 81px;
- height: 99px;
-}
-.Pet-Axolotl-Red {
- background-image: url(spritesmith-main-11.png);
- background-position: -1654px -700px;
- width: 81px;
- height: 99px;
-}
-.Pet-Axolotl-Shade {
- background-image: url(spritesmith-main-11.png);
- background-position: -1654px -800px;
- width: 81px;
- height: 99px;
-}
-.Pet-Axolotl-Skeleton {
- background-image: url(spritesmith-main-11.png);
- background-position: -1654px -900px;
- width: 81px;
- height: 99px;
-}
-.Pet-Axolotl-White {
- background-image: url(spritesmith-main-11.png);
- background-position: -1654px -1000px;
- width: 81px;
- height: 99px;
-}
-.Pet-Axolotl-Zombie {
background-image: url(spritesmith-main-11.png);
background-position: -1654px -1100px;
width: 81px;
diff --git a/common/dist/sprites/spritesmith-main-11.png b/common/dist/sprites/spritesmith-main-11.png
index ca5203f252..62dd6bde44 100644
Binary files a/common/dist/sprites/spritesmith-main-11.png and b/common/dist/sprites/spritesmith-main-11.png differ
diff --git a/common/dist/sprites/spritesmith-main-12.css b/common/dist/sprites/spritesmith-main-12.css
index ed8b19c9c0..4ffc791c42 100644
--- a/common/dist/sprites/spritesmith-main-12.css
+++ b/common/dist/sprites/spritesmith-main-12.css
@@ -1,1990 +1,1990 @@
-.Pet-BearCub-Base {
+.Mount_Icon_Wolf-Spooky {
background-image: url(spritesmith-main-12.png);
background-position: -82px 0px;
width: 81px;
height: 99px;
}
-.Pet-BearCub-CottonCandyBlue {
+.Mount_Icon_Wolf-White {
background-image: url(spritesmith-main-12.png);
background-position: -82px -1100px;
width: 81px;
height: 99px;
}
-.Pet-BearCub-CottonCandyPink {
+.Mount_Icon_Wolf-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -164px 0px;
width: 81px;
height: 99px;
}
-.Pet-BearCub-Desert {
+.Pet-Axolotl-Base {
background-image: url(spritesmith-main-12.png);
background-position: 0px -100px;
width: 81px;
height: 99px;
}
-.Pet-BearCub-Floral {
+.Pet-Axolotl-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -82px -100px;
width: 81px;
height: 99px;
}
-.Pet-BearCub-Golden {
+.Pet-Axolotl-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -164px -100px;
width: 81px;
height: 99px;
}
-.Pet-BearCub-Peppermint {
+.Pet-Axolotl-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -246px 0px;
width: 81px;
height: 99px;
}
-.Pet-BearCub-Polar {
+.Pet-Axolotl-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -246px -100px;
width: 81px;
height: 99px;
}
-.Pet-BearCub-Red {
+.Pet-Axolotl-Red {
background-image: url(spritesmith-main-12.png);
background-position: 0px -200px;
width: 81px;
height: 99px;
}
-.Pet-BearCub-Shade {
+.Pet-Axolotl-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -82px -200px;
width: 81px;
height: 99px;
}
-.Pet-BearCub-Skeleton {
+.Pet-Axolotl-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -164px -200px;
width: 81px;
height: 99px;
}
-.Pet-BearCub-Spooky {
+.Pet-Axolotl-White {
background-image: url(spritesmith-main-12.png);
background-position: -246px -200px;
width: 81px;
height: 99px;
}
-.Pet-BearCub-White {
+.Pet-Axolotl-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -328px 0px;
width: 81px;
height: 99px;
}
-.Pet-BearCub-Zombie {
+.Pet-BearCub-Base {
background-image: url(spritesmith-main-12.png);
background-position: -328px -100px;
width: 81px;
height: 99px;
}
-.Pet-Bunny-Base {
+.Pet-BearCub-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -328px -200px;
width: 81px;
height: 99px;
}
-.Pet-Bunny-CottonCandyBlue {
+.Pet-BearCub-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: 0px -300px;
width: 81px;
height: 99px;
}
-.Pet-Bunny-CottonCandyPink {
+.Pet-BearCub-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -82px -300px;
width: 81px;
height: 99px;
}
-.Pet-Bunny-Desert {
+.Pet-BearCub-Floral {
background-image: url(spritesmith-main-12.png);
background-position: -164px -300px;
width: 81px;
height: 99px;
}
-.Pet-Bunny-Golden {
+.Pet-BearCub-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -246px -300px;
width: 81px;
height: 99px;
}
-.Pet-Bunny-Red {
+.Pet-BearCub-Peppermint {
background-image: url(spritesmith-main-12.png);
background-position: -328px -300px;
width: 81px;
height: 99px;
}
-.Pet-Bunny-Shade {
+.Pet-BearCub-Polar {
background-image: url(spritesmith-main-12.png);
background-position: -410px 0px;
width: 81px;
height: 99px;
}
-.Pet-Bunny-Skeleton {
+.Pet-BearCub-Red {
background-image: url(spritesmith-main-12.png);
background-position: -410px -100px;
width: 81px;
height: 99px;
}
-.Pet-Bunny-White {
+.Pet-BearCub-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -410px -200px;
width: 81px;
height: 99px;
}
-.Pet-Bunny-Zombie {
+.Pet-BearCub-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -410px -300px;
width: 81px;
height: 99px;
}
-.Pet-Cactus-Base {
+.Pet-BearCub-Spooky {
background-image: url(spritesmith-main-12.png);
background-position: -492px 0px;
width: 81px;
height: 99px;
}
-.Pet-Cactus-CottonCandyBlue {
+.Pet-BearCub-White {
background-image: url(spritesmith-main-12.png);
background-position: -492px -100px;
width: 81px;
height: 99px;
}
-.Pet-Cactus-CottonCandyPink {
+.Pet-BearCub-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -492px -200px;
width: 81px;
height: 99px;
}
-.Pet-Cactus-Desert {
+.Pet-Bunny-Base {
background-image: url(spritesmith-main-12.png);
background-position: -492px -300px;
width: 81px;
height: 99px;
}
-.Pet-Cactus-Floral {
+.Pet-Bunny-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: 0px -400px;
width: 81px;
height: 99px;
}
-.Pet-Cactus-Golden {
+.Pet-Bunny-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -82px -400px;
width: 81px;
height: 99px;
}
-.Pet-Cactus-Peppermint {
+.Pet-Bunny-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -164px -400px;
width: 81px;
height: 99px;
}
-.Pet-Cactus-Red {
+.Pet-Bunny-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -246px -400px;
width: 81px;
height: 99px;
}
-.Pet-Cactus-Shade {
+.Pet-Bunny-Red {
background-image: url(spritesmith-main-12.png);
background-position: -328px -400px;
width: 81px;
height: 99px;
}
-.Pet-Cactus-Skeleton {
+.Pet-Bunny-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -410px -400px;
width: 81px;
height: 99px;
}
-.Pet-Cactus-Spooky {
+.Pet-Bunny-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -492px -400px;
width: 81px;
height: 99px;
}
-.Pet-Cactus-White {
+.Pet-Bunny-White {
background-image: url(spritesmith-main-12.png);
background-position: -574px 0px;
width: 81px;
height: 99px;
}
-.Pet-Cactus-Zombie {
+.Pet-Bunny-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -574px -100px;
width: 81px;
height: 99px;
}
-.Pet-Cheetah-Base {
+.Pet-Cactus-Base {
background-image: url(spritesmith-main-12.png);
background-position: -574px -200px;
width: 81px;
height: 99px;
}
-.Pet-Cheetah-CottonCandyBlue {
+.Pet-Cactus-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -574px -300px;
width: 81px;
height: 99px;
}
-.Pet-Cheetah-CottonCandyPink {
+.Pet-Cactus-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -574px -400px;
width: 81px;
height: 99px;
}
-.Pet-Cheetah-Desert {
+.Pet-Cactus-Desert {
background-image: url(spritesmith-main-12.png);
background-position: 0px -500px;
width: 81px;
height: 99px;
}
-.Pet-Cheetah-Golden {
+.Pet-Cactus-Floral {
background-image: url(spritesmith-main-12.png);
background-position: -82px -500px;
width: 81px;
height: 99px;
}
-.Pet-Cheetah-Red {
+.Pet-Cactus-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -164px -500px;
width: 81px;
height: 99px;
}
-.Pet-Cheetah-Shade {
+.Pet-Cactus-Peppermint {
background-image: url(spritesmith-main-12.png);
background-position: -246px -500px;
width: 81px;
height: 99px;
}
-.Pet-Cheetah-Skeleton {
+.Pet-Cactus-Red {
background-image: url(spritesmith-main-12.png);
background-position: -328px -500px;
width: 81px;
height: 99px;
}
-.Pet-Cheetah-White {
+.Pet-Cactus-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -410px -500px;
width: 81px;
height: 99px;
}
-.Pet-Cheetah-Zombie {
+.Pet-Cactus-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -492px -500px;
width: 81px;
height: 99px;
}
-.Pet-Cuttlefish-Base {
+.Pet-Cactus-Spooky {
background-image: url(spritesmith-main-12.png);
background-position: -574px -500px;
width: 81px;
height: 99px;
}
-.Pet-Cuttlefish-CottonCandyBlue {
+.Pet-Cactus-White {
background-image: url(spritesmith-main-12.png);
background-position: -656px 0px;
width: 81px;
height: 99px;
}
-.Pet-Cuttlefish-CottonCandyPink {
+.Pet-Cactus-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -656px -100px;
width: 81px;
height: 99px;
}
-.Pet-Cuttlefish-Desert {
+.Pet-Cheetah-Base {
background-image: url(spritesmith-main-12.png);
background-position: -656px -200px;
width: 81px;
height: 99px;
}
-.Pet-Cuttlefish-Golden {
+.Pet-Cheetah-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -656px -300px;
width: 81px;
height: 99px;
}
-.Pet-Cuttlefish-Red {
+.Pet-Cheetah-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -656px -400px;
width: 81px;
height: 99px;
}
-.Pet-Cuttlefish-Shade {
+.Pet-Cheetah-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -656px -500px;
width: 81px;
height: 99px;
}
-.Pet-Cuttlefish-Skeleton {
+.Pet-Cheetah-Golden {
background-image: url(spritesmith-main-12.png);
background-position: 0px -600px;
width: 81px;
height: 99px;
}
-.Pet-Cuttlefish-White {
+.Pet-Cheetah-Red {
background-image: url(spritesmith-main-12.png);
background-position: -82px -600px;
width: 81px;
height: 99px;
}
-.Pet-Cuttlefish-Zombie {
+.Pet-Cheetah-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -164px -600px;
width: 81px;
height: 99px;
}
-.Pet-Deer-Base {
+.Pet-Cheetah-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -246px -600px;
width: 81px;
height: 99px;
}
-.Pet-Deer-CottonCandyBlue {
+.Pet-Cheetah-White {
background-image: url(spritesmith-main-12.png);
background-position: -328px -600px;
width: 81px;
height: 99px;
}
-.Pet-Deer-CottonCandyPink {
+.Pet-Cheetah-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -410px -600px;
width: 81px;
height: 99px;
}
-.Pet-Deer-Desert {
+.Pet-Cuttlefish-Base {
background-image: url(spritesmith-main-12.png);
background-position: -492px -600px;
width: 81px;
height: 99px;
}
-.Pet-Deer-Golden {
+.Pet-Cuttlefish-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -574px -600px;
width: 81px;
height: 99px;
}
-.Pet-Deer-Red {
+.Pet-Cuttlefish-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -656px -600px;
width: 81px;
height: 99px;
}
-.Pet-Deer-Shade {
+.Pet-Cuttlefish-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -738px 0px;
width: 81px;
height: 99px;
}
-.Pet-Deer-Skeleton {
+.Pet-Cuttlefish-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -738px -100px;
width: 81px;
height: 99px;
}
-.Pet-Deer-White {
+.Pet-Cuttlefish-Red {
background-image: url(spritesmith-main-12.png);
background-position: -738px -200px;
width: 81px;
height: 99px;
}
-.Pet-Deer-Zombie {
+.Pet-Cuttlefish-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -738px -300px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-Base {
+.Pet-Cuttlefish-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -738px -400px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-CottonCandyBlue {
+.Pet-Cuttlefish-White {
background-image: url(spritesmith-main-12.png);
background-position: -738px -500px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-CottonCandyPink {
+.Pet-Cuttlefish-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -738px -600px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-Desert {
+.Pet-Deer-Base {
background-image: url(spritesmith-main-12.png);
background-position: 0px -700px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-Floral {
+.Pet-Deer-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -82px -700px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-Golden {
+.Pet-Deer-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -164px -700px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-Hydra {
+.Pet-Deer-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -246px -700px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-Peppermint {
+.Pet-Deer-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -328px -700px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-Red {
+.Pet-Deer-Red {
background-image: url(spritesmith-main-12.png);
background-position: -410px -700px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-Shade {
+.Pet-Deer-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -492px -700px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-Skeleton {
+.Pet-Deer-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -574px -700px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-Spooky {
+.Pet-Deer-White {
background-image: url(spritesmith-main-12.png);
background-position: -656px -700px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-White {
+.Pet-Deer-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -738px -700px;
width: 81px;
height: 99px;
}
-.Pet-Dragon-Zombie {
+.Pet-Dragon-Base {
background-image: url(spritesmith-main-12.png);
background-position: -820px 0px;
width: 81px;
height: 99px;
}
-.Pet-Egg-Base {
+.Pet-Dragon-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -820px -100px;
width: 81px;
height: 99px;
}
-.Pet-Egg-CottonCandyBlue {
+.Pet-Dragon-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -820px -200px;
width: 81px;
height: 99px;
}
-.Pet-Egg-CottonCandyPink {
+.Pet-Dragon-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -820px -300px;
width: 81px;
height: 99px;
}
-.Pet-Egg-Desert {
+.Pet-Dragon-Floral {
background-image: url(spritesmith-main-12.png);
background-position: -820px -400px;
width: 81px;
height: 99px;
}
-.Pet-Egg-Golden {
+.Pet-Dragon-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -820px -500px;
width: 81px;
height: 99px;
}
-.Pet-Egg-Red {
+.Pet-Dragon-Hydra {
background-image: url(spritesmith-main-12.png);
background-position: -820px -600px;
width: 81px;
height: 99px;
}
-.Pet-Egg-Shade {
+.Pet-Dragon-Peppermint {
background-image: url(spritesmith-main-12.png);
background-position: -820px -700px;
width: 81px;
height: 99px;
}
-.Pet-Egg-Skeleton {
+.Pet-Dragon-Red {
background-image: url(spritesmith-main-12.png);
background-position: 0px -800px;
width: 81px;
height: 99px;
}
-.Pet-Egg-White {
+.Pet-Dragon-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -82px -800px;
width: 81px;
height: 99px;
}
-.Pet-Egg-Zombie {
+.Pet-Dragon-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -164px -800px;
width: 81px;
height: 99px;
}
-.Pet-Falcon-Base {
+.Pet-Dragon-Spooky {
background-image: url(spritesmith-main-12.png);
background-position: -246px -800px;
width: 81px;
height: 99px;
}
-.Pet-Falcon-CottonCandyBlue {
+.Pet-Dragon-White {
background-image: url(spritesmith-main-12.png);
background-position: -328px -800px;
width: 81px;
height: 99px;
}
-.Pet-Falcon-CottonCandyPink {
+.Pet-Dragon-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -410px -800px;
width: 81px;
height: 99px;
}
-.Pet-Falcon-Desert {
+.Pet-Egg-Base {
background-image: url(spritesmith-main-12.png);
background-position: -492px -800px;
width: 81px;
height: 99px;
}
-.Pet-Falcon-Golden {
+.Pet-Egg-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -574px -800px;
width: 81px;
height: 99px;
}
-.Pet-Falcon-Red {
+.Pet-Egg-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -656px -800px;
width: 81px;
height: 99px;
}
-.Pet-Falcon-Shade {
+.Pet-Egg-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -738px -800px;
width: 81px;
height: 99px;
}
-.Pet-Falcon-Skeleton {
+.Pet-Egg-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -820px -800px;
width: 81px;
height: 99px;
}
-.Pet-Falcon-White {
+.Pet-Egg-Red {
background-image: url(spritesmith-main-12.png);
background-position: -902px 0px;
width: 81px;
height: 99px;
}
-.Pet-Falcon-Zombie {
+.Pet-Egg-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -902px -100px;
width: 81px;
height: 99px;
}
-.Pet-FlyingPig-Base {
+.Pet-Egg-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -902px -200px;
width: 81px;
height: 99px;
}
-.Pet-FlyingPig-CottonCandyBlue {
+.Pet-Egg-White {
background-image: url(spritesmith-main-12.png);
background-position: -902px -300px;
width: 81px;
height: 99px;
}
-.Pet-FlyingPig-CottonCandyPink {
+.Pet-Egg-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -902px -400px;
width: 81px;
height: 99px;
}
-.Pet-FlyingPig-Desert {
+.Pet-Falcon-Base {
background-image: url(spritesmith-main-12.png);
background-position: -902px -500px;
width: 81px;
height: 99px;
}
-.Pet-FlyingPig-Floral {
+.Pet-Falcon-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -902px -600px;
width: 81px;
height: 99px;
}
-.Pet-FlyingPig-Golden {
+.Pet-Falcon-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -902px -700px;
width: 81px;
height: 99px;
}
-.Pet-FlyingPig-Peppermint {
+.Pet-Falcon-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -902px -800px;
width: 81px;
height: 99px;
}
-.Pet-FlyingPig-Red {
+.Pet-Falcon-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -984px 0px;
width: 81px;
height: 99px;
}
-.Pet-FlyingPig-Shade {
+.Pet-Falcon-Red {
background-image: url(spritesmith-main-12.png);
background-position: -984px -100px;
width: 81px;
height: 99px;
}
-.Pet-FlyingPig-Skeleton {
+.Pet-Falcon-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -984px -200px;
width: 81px;
height: 99px;
}
-.Pet-FlyingPig-Spooky {
+.Pet-Falcon-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -984px -300px;
width: 81px;
height: 99px;
}
-.Pet-FlyingPig-White {
+.Pet-Falcon-White {
background-image: url(spritesmith-main-12.png);
background-position: -984px -400px;
width: 81px;
height: 99px;
}
-.Pet-FlyingPig-Zombie {
+.Pet-Falcon-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -984px -500px;
width: 81px;
height: 99px;
}
-.Pet-Fox-Base {
+.Pet-FlyingPig-Base {
background-image: url(spritesmith-main-12.png);
background-position: -984px -600px;
width: 81px;
height: 99px;
}
-.Pet-Fox-CottonCandyBlue {
+.Pet-FlyingPig-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -984px -700px;
width: 81px;
height: 99px;
}
-.Pet-Fox-CottonCandyPink {
+.Pet-FlyingPig-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -984px -800px;
width: 81px;
height: 99px;
}
-.Pet-Fox-Desert {
+.Pet-FlyingPig-Desert {
background-image: url(spritesmith-main-12.png);
background-position: 0px -900px;
width: 81px;
height: 99px;
}
-.Pet-Fox-Floral {
+.Pet-FlyingPig-Floral {
background-image: url(spritesmith-main-12.png);
background-position: -82px -900px;
width: 81px;
height: 99px;
}
-.Pet-Fox-Golden {
+.Pet-FlyingPig-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -164px -900px;
width: 81px;
height: 99px;
}
-.Pet-Fox-Peppermint {
+.Pet-FlyingPig-Peppermint {
background-image: url(spritesmith-main-12.png);
background-position: -246px -900px;
width: 81px;
height: 99px;
}
-.Pet-Fox-Red {
+.Pet-FlyingPig-Red {
background-image: url(spritesmith-main-12.png);
background-position: -328px -900px;
width: 81px;
height: 99px;
}
-.Pet-Fox-Shade {
+.Pet-FlyingPig-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -410px -900px;
width: 81px;
height: 99px;
}
-.Pet-Fox-Skeleton {
+.Pet-FlyingPig-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -492px -900px;
width: 81px;
height: 99px;
}
-.Pet-Fox-Spooky {
+.Pet-FlyingPig-Spooky {
background-image: url(spritesmith-main-12.png);
background-position: -574px -900px;
width: 81px;
height: 99px;
}
-.Pet-Fox-White {
+.Pet-FlyingPig-White {
background-image: url(spritesmith-main-12.png);
background-position: -656px -900px;
width: 81px;
height: 99px;
}
-.Pet-Fox-Zombie {
+.Pet-FlyingPig-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -738px -900px;
width: 81px;
height: 99px;
}
-.Pet-Frog-Base {
+.Pet-Fox-Base {
background-image: url(spritesmith-main-12.png);
background-position: -820px -900px;
width: 81px;
height: 99px;
}
-.Pet-Frog-CottonCandyBlue {
+.Pet-Fox-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -902px -900px;
width: 81px;
height: 99px;
}
-.Pet-Frog-CottonCandyPink {
+.Pet-Fox-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -984px -900px;
width: 81px;
height: 99px;
}
-.Pet-Frog-Desert {
+.Pet-Fox-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -1066px 0px;
width: 81px;
height: 99px;
}
-.Pet-Frog-Golden {
+.Pet-Fox-Floral {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -100px;
width: 81px;
height: 99px;
}
-.Pet-Frog-Red {
+.Pet-Fox-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -200px;
width: 81px;
height: 99px;
}
-.Pet-Frog-Shade {
+.Pet-Fox-Peppermint {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -300px;
width: 81px;
height: 99px;
}
-.Pet-Frog-Skeleton {
+.Pet-Fox-Red {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -400px;
width: 81px;
height: 99px;
}
-.Pet-Frog-White {
+.Pet-Fox-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -500px;
width: 81px;
height: 99px;
}
-.Pet-Frog-Zombie {
+.Pet-Fox-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -600px;
width: 81px;
height: 99px;
}
-.Pet-Gryphon-Base {
+.Pet-Fox-Spooky {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -700px;
width: 81px;
height: 99px;
}
-.Pet-Gryphon-CottonCandyBlue {
+.Pet-Fox-White {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -800px;
width: 81px;
height: 99px;
}
-.Pet-Gryphon-CottonCandyPink {
+.Pet-Fox-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -900px;
width: 81px;
height: 99px;
}
-.Pet-Gryphon-Desert {
+.Pet-Frog-Base {
background-image: url(spritesmith-main-12.png);
background-position: 0px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Gryphon-Golden {
+.Pet-Frog-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -82px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Gryphon-Red {
+.Pet-Frog-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -164px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Gryphon-Shade {
+.Pet-Frog-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -246px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Gryphon-Skeleton {
+.Pet-Frog-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -328px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Gryphon-White {
+.Pet-Frog-Red {
background-image: url(spritesmith-main-12.png);
background-position: -410px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Gryphon-Zombie {
+.Pet-Frog-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -492px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Hedgehog-Base {
+.Pet-Frog-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -574px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Hedgehog-CottonCandyBlue {
+.Pet-Frog-White {
background-image: url(spritesmith-main-12.png);
background-position: -656px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Hedgehog-CottonCandyPink {
+.Pet-Frog-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -738px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Hedgehog-Desert {
+.Pet-Gryphon-Base {
background-image: url(spritesmith-main-12.png);
background-position: -820px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Hedgehog-Golden {
+.Pet-Gryphon-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -902px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Hedgehog-Red {
+.Pet-Gryphon-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -984px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Hedgehog-Shade {
+.Pet-Gryphon-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Hedgehog-Skeleton {
+.Pet-Gryphon-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -1148px 0px;
width: 81px;
height: 99px;
}
-.Pet-Hedgehog-White {
+.Pet-Gryphon-Red {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -100px;
width: 81px;
height: 99px;
}
-.Pet-Hedgehog-Zombie {
+.Pet-Gryphon-RoyalPurple {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -200px;
width: 81px;
height: 99px;
}
-.Pet-Horse-Base {
+.Pet-Gryphon-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -300px;
width: 81px;
height: 99px;
}
-.Pet-Horse-CottonCandyBlue {
+.Pet-Gryphon-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -400px;
width: 81px;
height: 99px;
}
-.Pet-Horse-CottonCandyPink {
+.Pet-Gryphon-White {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -500px;
width: 81px;
height: 99px;
}
-.Pet-Horse-Desert {
+.Pet-Gryphon-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -600px;
width: 81px;
height: 99px;
}
-.Pet-Horse-Golden {
+.Pet-Hedgehog-Base {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -700px;
width: 81px;
height: 99px;
}
-.Pet-Horse-Red {
+.Pet-Hedgehog-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -800px;
width: 81px;
height: 99px;
}
-.Pet-Horse-Shade {
+.Pet-Hedgehog-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -900px;
width: 81px;
height: 99px;
}
-.Pet-Horse-Skeleton {
+.Pet-Hedgehog-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Horse-White {
+.Pet-Hedgehog-Golden {
background-image: url(spritesmith-main-12.png);
background-position: 0px -1100px;
width: 81px;
height: 99px;
}
-.Pet-Horse-Zombie {
+.Pet-Hedgehog-Red {
background-image: url(spritesmith-main-12.png);
background-position: 0px 0px;
width: 81px;
height: 99px;
}
-.Pet-JackOLantern-Base {
+.Pet-Hedgehog-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -164px -1100px;
width: 81px;
height: 99px;
}
-.Pet-Lion-Veteran {
+.Pet-Hedgehog-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -246px -1100px;
width: 81px;
height: 99px;
}
-.Pet-LionCub-Base {
+.Pet-Hedgehog-White {
background-image: url(spritesmith-main-12.png);
background-position: -328px -1100px;
width: 81px;
height: 99px;
}
-.Pet-LionCub-CottonCandyBlue {
+.Pet-Hedgehog-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -410px -1100px;
width: 81px;
height: 99px;
}
-.Pet-LionCub-CottonCandyPink {
+.Pet-Horse-Base {
background-image: url(spritesmith-main-12.png);
background-position: -492px -1100px;
width: 81px;
height: 99px;
}
-.Pet-LionCub-Desert {
+.Pet-Horse-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -574px -1100px;
width: 81px;
height: 99px;
}
-.Pet-LionCub-Floral {
+.Pet-Horse-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -656px -1100px;
width: 81px;
height: 99px;
}
-.Pet-LionCub-Golden {
+.Pet-Horse-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -738px -1100px;
width: 81px;
height: 99px;
}
-.Pet-LionCub-Peppermint {
+.Pet-Horse-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -820px -1100px;
width: 81px;
height: 99px;
}
-.Pet-LionCub-Red {
+.Pet-Horse-Red {
background-image: url(spritesmith-main-12.png);
background-position: -902px -1100px;
width: 81px;
height: 99px;
}
-.Pet-LionCub-Shade {
+.Pet-Horse-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -984px -1100px;
width: 81px;
height: 99px;
}
-.Pet-LionCub-Skeleton {
+.Pet-Horse-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -1100px;
width: 81px;
height: 99px;
}
-.Pet-LionCub-Spooky {
+.Pet-Horse-White {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -1100px;
width: 81px;
height: 99px;
}
-.Pet-LionCub-White {
+.Pet-Horse-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -1230px 0px;
width: 81px;
height: 99px;
}
-.Pet-LionCub-Zombie {
+.Pet-JackOLantern-Base {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -100px;
width: 81px;
height: 99px;
}
-.Pet-MagicalBee-Base {
+.Pet-Lion-Veteran {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -200px;
width: 81px;
height: 99px;
}
-.Pet-Mammoth-Base {
+.Pet-LionCub-Base {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -300px;
width: 81px;
height: 99px;
}
-.Pet-MantisShrimp-Base {
+.Pet-LionCub-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -400px;
width: 81px;
height: 99px;
}
-.Pet-Monkey-Base {
+.Pet-LionCub-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -500px;
width: 81px;
height: 99px;
}
-.Pet-Monkey-CottonCandyBlue {
+.Pet-LionCub-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -600px;
width: 81px;
height: 99px;
}
-.Pet-Monkey-CottonCandyPink {
+.Pet-LionCub-Floral {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -700px;
width: 81px;
height: 99px;
}
-.Pet-Monkey-Desert {
+.Pet-LionCub-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -800px;
width: 81px;
height: 99px;
}
-.Pet-Monkey-Golden {
+.Pet-LionCub-Peppermint {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -900px;
width: 81px;
height: 99px;
}
-.Pet-Monkey-Red {
+.Pet-LionCub-Red {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Monkey-Shade {
+.Pet-LionCub-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -1100px;
width: 81px;
height: 99px;
}
-.Pet-Monkey-Skeleton {
+.Pet-LionCub-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: 0px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Monkey-White {
+.Pet-LionCub-Spooky {
background-image: url(spritesmith-main-12.png);
background-position: -82px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Monkey-Zombie {
+.Pet-LionCub-White {
background-image: url(spritesmith-main-12.png);
background-position: -164px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Octopus-Base {
+.Pet-LionCub-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -246px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Octopus-CottonCandyBlue {
+.Pet-MagicalBee-Base {
background-image: url(spritesmith-main-12.png);
background-position: -328px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Octopus-CottonCandyPink {
+.Pet-Mammoth-Base {
background-image: url(spritesmith-main-12.png);
background-position: -410px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Octopus-Desert {
+.Pet-MantisShrimp-Base {
background-image: url(spritesmith-main-12.png);
background-position: -492px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Octopus-Golden {
+.Pet-Monkey-Base {
background-image: url(spritesmith-main-12.png);
background-position: -574px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Octopus-Red {
+.Pet-Monkey-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -656px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Octopus-Shade {
+.Pet-Monkey-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -738px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Octopus-Skeleton {
+.Pet-Monkey-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -820px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Octopus-White {
+.Pet-Monkey-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -902px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Octopus-Zombie {
+.Pet-Monkey-Red {
background-image: url(spritesmith-main-12.png);
background-position: -984px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Owl-Base {
+.Pet-Monkey-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Owl-CottonCandyBlue {
+.Pet-Monkey-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Owl-CottonCandyPink {
+.Pet-Monkey-White {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Owl-Desert {
+.Pet-Monkey-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -1312px 0px;
width: 81px;
height: 99px;
}
-.Pet-Owl-Golden {
+.Pet-Octopus-Base {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -100px;
width: 81px;
height: 99px;
}
-.Pet-Owl-Red {
+.Pet-Octopus-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -200px;
width: 81px;
height: 99px;
}
-.Pet-Owl-Shade {
+.Pet-Octopus-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -300px;
width: 81px;
height: 99px;
}
-.Pet-Owl-Skeleton {
+.Pet-Octopus-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -400px;
width: 81px;
height: 99px;
}
-.Pet-Owl-White {
+.Pet-Octopus-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -500px;
width: 81px;
height: 99px;
}
-.Pet-Owl-Zombie {
+.Pet-Octopus-Red {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -600px;
width: 81px;
height: 99px;
}
-.Pet-PandaCub-Base {
+.Pet-Octopus-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -700px;
width: 81px;
height: 99px;
}
-.Pet-PandaCub-CottonCandyBlue {
+.Pet-Octopus-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -800px;
width: 81px;
height: 99px;
}
-.Pet-PandaCub-CottonCandyPink {
+.Pet-Octopus-White {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -900px;
width: 81px;
height: 99px;
}
-.Pet-PandaCub-Desert {
+.Pet-Octopus-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -1000px;
width: 81px;
height: 99px;
}
-.Pet-PandaCub-Floral {
+.Pet-Owl-Base {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -1100px;
width: 81px;
height: 99px;
}
-.Pet-PandaCub-Golden {
+.Pet-Owl-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -1200px;
width: 81px;
height: 99px;
}
-.Pet-PandaCub-Peppermint {
+.Pet-Owl-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -1394px 0px;
width: 81px;
height: 99px;
}
-.Pet-PandaCub-Red {
+.Pet-Owl-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -100px;
width: 81px;
height: 99px;
}
-.Pet-PandaCub-Shade {
+.Pet-Owl-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -200px;
width: 81px;
height: 99px;
}
-.Pet-PandaCub-Skeleton {
+.Pet-Owl-Red {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -300px;
width: 81px;
height: 99px;
}
-.Pet-PandaCub-Spooky {
+.Pet-Owl-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -400px;
width: 81px;
height: 99px;
}
-.Pet-PandaCub-White {
+.Pet-Owl-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -500px;
width: 81px;
height: 99px;
}
-.Pet-PandaCub-Zombie {
+.Pet-Owl-White {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -600px;
width: 81px;
height: 99px;
}
-.Pet-Parrot-Base {
+.Pet-Owl-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -700px;
width: 81px;
height: 99px;
}
-.Pet-Parrot-CottonCandyBlue {
+.Pet-PandaCub-Base {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -800px;
width: 81px;
height: 99px;
}
-.Pet-Parrot-CottonCandyPink {
+.Pet-PandaCub-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -900px;
width: 81px;
height: 99px;
}
-.Pet-Parrot-Desert {
+.Pet-PandaCub-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Parrot-Golden {
+.Pet-PandaCub-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -1100px;
width: 81px;
height: 99px;
}
-.Pet-Parrot-Red {
+.Pet-PandaCub-Floral {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Parrot-Shade {
+.Pet-PandaCub-Golden {
background-image: url(spritesmith-main-12.png);
background-position: 0px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Parrot-Skeleton {
+.Pet-PandaCub-Peppermint {
background-image: url(spritesmith-main-12.png);
background-position: -82px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Parrot-White {
+.Pet-PandaCub-Red {
background-image: url(spritesmith-main-12.png);
background-position: -164px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Parrot-Zombie {
+.Pet-PandaCub-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -246px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Penguin-Base {
+.Pet-PandaCub-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -328px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Penguin-CottonCandyBlue {
+.Pet-PandaCub-Spooky {
background-image: url(spritesmith-main-12.png);
background-position: -410px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Penguin-CottonCandyPink {
+.Pet-PandaCub-White {
background-image: url(spritesmith-main-12.png);
background-position: -492px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Penguin-Desert {
+.Pet-PandaCub-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -574px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Penguin-Golden {
+.Pet-Parrot-Base {
background-image: url(spritesmith-main-12.png);
background-position: -656px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Penguin-Red {
+.Pet-Parrot-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -738px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Penguin-Shade {
+.Pet-Parrot-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -820px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Penguin-Skeleton {
+.Pet-Parrot-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -902px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Penguin-White {
+.Pet-Parrot-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -984px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Penguin-Zombie {
+.Pet-Parrot-Red {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Phoenix-Base {
+.Pet-Parrot-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Rat-Base {
+.Pet-Parrot-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Rat-CottonCandyBlue {
+.Pet-Parrot-White {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Rat-CottonCandyPink {
+.Pet-Parrot-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Rat-Desert {
+.Pet-Penguin-Base {
background-image: url(spritesmith-main-12.png);
background-position: -1476px 0px;
width: 81px;
height: 99px;
}
-.Pet-Rat-Golden {
+.Pet-Penguin-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -100px;
width: 81px;
height: 99px;
}
-.Pet-Rat-Red {
+.Pet-Penguin-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -200px;
width: 81px;
height: 99px;
}
-.Pet-Rat-Shade {
+.Pet-Penguin-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -300px;
width: 81px;
height: 99px;
}
-.Pet-Rat-Skeleton {
+.Pet-Penguin-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -400px;
width: 81px;
height: 99px;
}
-.Pet-Rat-White {
+.Pet-Penguin-Red {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -500px;
width: 81px;
height: 99px;
}
-.Pet-Rat-Zombie {
+.Pet-Penguin-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -600px;
width: 81px;
height: 99px;
}
-.Pet-Rock-Base {
+.Pet-Penguin-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -700px;
width: 81px;
height: 99px;
}
-.Pet-Rock-CottonCandyBlue {
+.Pet-Penguin-White {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -800px;
width: 81px;
height: 99px;
}
-.Pet-Rock-CottonCandyPink {
+.Pet-Penguin-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -900px;
width: 81px;
height: 99px;
}
-.Pet-Rock-Desert {
+.Pet-Phoenix-Base {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Rock-Golden {
+.Pet-Rat-Base {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -1100px;
width: 81px;
height: 99px;
}
-.Pet-Rock-Red {
+.Pet-Rat-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Rock-Shade {
+.Pet-Rat-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Rock-Skeleton {
+.Pet-Rat-Desert {
background-image: url(spritesmith-main-12.png);
background-position: 0px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Rock-White {
+.Pet-Rat-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -82px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Rock-Zombie {
+.Pet-Rat-Red {
background-image: url(spritesmith-main-12.png);
background-position: -164px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Rooster-Base {
+.Pet-Rat-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -246px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Rooster-CottonCandyBlue {
+.Pet-Rat-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -328px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Rooster-CottonCandyPink {
+.Pet-Rat-White {
background-image: url(spritesmith-main-12.png);
background-position: -410px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Rooster-Desert {
+.Pet-Rat-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -492px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Rooster-Golden {
+.Pet-Rock-Base {
background-image: url(spritesmith-main-12.png);
background-position: -574px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Rooster-Red {
+.Pet-Rock-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -656px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Rooster-Shade {
+.Pet-Rock-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -738px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Rooster-Skeleton {
+.Pet-Rock-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -820px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Rooster-White {
+.Pet-Rock-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -902px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Rooster-Zombie {
+.Pet-Rock-Red {
background-image: url(spritesmith-main-12.png);
background-position: -984px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Sabretooth-Base {
+.Pet-Rock-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Sabretooth-CottonCandyBlue {
+.Pet-Rock-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Sabretooth-CottonCandyPink {
+.Pet-Rock-White {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Sabretooth-Desert {
+.Pet-Rock-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Sabretooth-Golden {
+.Pet-Rooster-Base {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Sabretooth-Red {
+.Pet-Rooster-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Sabretooth-Shade {
+.Pet-Rooster-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -1558px 0px;
width: 81px;
height: 99px;
}
-.Pet-Sabretooth-Skeleton {
+.Pet-Rooster-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -100px;
width: 81px;
height: 99px;
}
-.Pet-Sabretooth-White {
+.Pet-Rooster-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -200px;
width: 81px;
height: 99px;
}
-.Pet-Sabretooth-Zombie {
+.Pet-Rooster-Red {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -300px;
width: 81px;
height: 99px;
}
-.Pet-Seahorse-Base {
+.Pet-Rooster-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -400px;
width: 81px;
height: 99px;
}
-.Pet-Seahorse-CottonCandyBlue {
+.Pet-Rooster-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -500px;
width: 81px;
height: 99px;
}
-.Pet-Seahorse-CottonCandyPink {
+.Pet-Rooster-White {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -600px;
width: 81px;
height: 99px;
}
-.Pet-Seahorse-Desert {
+.Pet-Rooster-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -700px;
width: 81px;
height: 99px;
}
-.Pet-Seahorse-Golden {
+.Pet-Sabretooth-Base {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -800px;
width: 81px;
height: 99px;
}
-.Pet-Seahorse-Red {
+.Pet-Sabretooth-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -900px;
width: 81px;
height: 99px;
}
-.Pet-Seahorse-Shade {
+.Pet-Sabretooth-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Seahorse-Skeleton {
+.Pet-Sabretooth-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -1100px;
width: 81px;
height: 99px;
}
-.Pet-Seahorse-White {
+.Pet-Sabretooth-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -1200px;
width: 81px;
height: 99px;
}
-.Pet-Seahorse-Zombie {
+.Pet-Sabretooth-Red {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -1300px;
width: 81px;
height: 99px;
}
-.Pet-Sheep-Base {
+.Pet-Sabretooth-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -1400px;
width: 81px;
height: 99px;
}
-.Pet-Sheep-CottonCandyBlue {
+.Pet-Sabretooth-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: 0px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Sheep-CottonCandyPink {
+.Pet-Sabretooth-White {
background-image: url(spritesmith-main-12.png);
background-position: -82px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Sheep-Desert {
+.Pet-Sabretooth-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -164px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Sheep-Golden {
+.Pet-Seahorse-Base {
background-image: url(spritesmith-main-12.png);
background-position: -246px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Sheep-Red {
+.Pet-Seahorse-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -328px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Sheep-Shade {
+.Pet-Seahorse-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -410px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Sheep-Skeleton {
+.Pet-Seahorse-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -492px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Sheep-White {
+.Pet-Seahorse-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -574px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Sheep-Zombie {
+.Pet-Seahorse-Red {
background-image: url(spritesmith-main-12.png);
background-position: -656px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Slime-Base {
+.Pet-Seahorse-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -738px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Slime-CottonCandyBlue {
+.Pet-Seahorse-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -820px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Slime-CottonCandyPink {
+.Pet-Seahorse-White {
background-image: url(spritesmith-main-12.png);
background-position: -902px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Slime-Desert {
+.Pet-Seahorse-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -984px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Slime-Golden {
+.Pet-Sheep-Base {
background-image: url(spritesmith-main-12.png);
background-position: -1066px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Slime-Red {
+.Pet-Sheep-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -1148px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Slime-Shade {
+.Pet-Sheep-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -1230px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Slime-Skeleton {
+.Pet-Sheep-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -1312px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Slime-White {
+.Pet-Sheep-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -1394px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Slime-Zombie {
+.Pet-Sheep-Red {
background-image: url(spritesmith-main-12.png);
background-position: -1476px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Snail-Base {
+.Pet-Sheep-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -1558px -1500px;
width: 81px;
height: 99px;
}
-.Pet-Snail-CottonCandyBlue {
+.Pet-Sheep-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -1640px 0px;
width: 81px;
height: 99px;
}
-.Pet-Snail-CottonCandyPink {
+.Pet-Sheep-White {
background-image: url(spritesmith-main-12.png);
background-position: -1640px -100px;
width: 81px;
height: 99px;
}
-.Pet-Snail-Desert {
+.Pet-Sheep-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -1640px -200px;
width: 81px;
height: 99px;
}
-.Pet-Snail-Golden {
+.Pet-Slime-Base {
background-image: url(spritesmith-main-12.png);
background-position: -1640px -300px;
width: 81px;
height: 99px;
}
-.Pet-Snail-Red {
+.Pet-Slime-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -1640px -400px;
width: 81px;
height: 99px;
}
-.Pet-Snail-Shade {
+.Pet-Slime-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -1640px -500px;
width: 81px;
height: 99px;
}
-.Pet-Snail-Skeleton {
+.Pet-Slime-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -1640px -600px;
width: 81px;
height: 99px;
}
-.Pet-Snail-White {
+.Pet-Slime-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -1640px -700px;
width: 81px;
height: 99px;
}
-.Pet-Snail-Zombie {
+.Pet-Slime-Red {
background-image: url(spritesmith-main-12.png);
background-position: -1640px -800px;
width: 81px;
height: 99px;
}
-.Pet-Snake-Base {
+.Pet-Slime-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -1640px -900px;
width: 81px;
height: 99px;
}
-.Pet-Snake-CottonCandyBlue {
+.Pet-Slime-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -1640px -1000px;
width: 81px;
height: 99px;
}
-.Pet-Snake-CottonCandyPink {
+.Pet-Slime-White {
background-image: url(spritesmith-main-12.png);
background-position: -1640px -1100px;
width: 81px;
diff --git a/common/dist/sprites/spritesmith-main-12.png b/common/dist/sprites/spritesmith-main-12.png
index bf66027f8c..5b4acc4ecb 100644
Binary files a/common/dist/sprites/spritesmith-main-12.png and b/common/dist/sprites/spritesmith-main-12.png differ
diff --git a/common/dist/sprites/spritesmith-main-13.css b/common/dist/sprites/spritesmith-main-13.css
index 1acfc4e03f..30f96e2a13 100644
--- a/common/dist/sprites/spritesmith-main-13.css
+++ b/common/dist/sprites/spritesmith-main-13.css
@@ -1,660 +1,744 @@
-.Pet-Snake-Desert {
+.Pet-Slime-Zombie {
background-image: url(spritesmith-main-13.png);
background-position: -82px 0px;
width: 81px;
height: 99px;
}
-.Pet-Snake-Golden {
- background-image: url(spritesmith-main-13.png);
- background-position: -82px -600px;
- width: 81px;
- height: 99px;
-}
-.Pet-Snake-Red {
- background-image: url(spritesmith-main-13.png);
- background-position: -164px 0px;
- width: 81px;
- height: 99px;
-}
-.Pet-Snake-Shade {
- background-image: url(spritesmith-main-13.png);
- background-position: 0px -100px;
- width: 81px;
- height: 99px;
-}
-.Pet-Snake-Skeleton {
- background-image: url(spritesmith-main-13.png);
- background-position: -82px -100px;
- width: 81px;
- height: 99px;
-}
-.Pet-Snake-White {
- background-image: url(spritesmith-main-13.png);
- background-position: -164px -100px;
- width: 81px;
- height: 99px;
-}
-.Pet-Snake-Zombie {
- background-image: url(spritesmith-main-13.png);
- background-position: -246px 0px;
- width: 81px;
- height: 99px;
-}
-.Pet-Spider-Base {
- background-image: url(spritesmith-main-13.png);
- background-position: -246px -100px;
- width: 81px;
- height: 99px;
-}
-.Pet-Spider-CottonCandyBlue {
- background-image: url(spritesmith-main-13.png);
- background-position: 0px -200px;
- width: 81px;
- height: 99px;
-}
-.Pet-Spider-CottonCandyPink {
- background-image: url(spritesmith-main-13.png);
- background-position: -82px -200px;
- width: 81px;
- height: 99px;
-}
-.Pet-Spider-Desert {
- background-image: url(spritesmith-main-13.png);
- background-position: -164px -200px;
- width: 81px;
- height: 99px;
-}
-.Pet-Spider-Golden {
- background-image: url(spritesmith-main-13.png);
- background-position: -246px -200px;
- width: 81px;
- height: 99px;
-}
-.Pet-Spider-Red {
- background-image: url(spritesmith-main-13.png);
- background-position: -328px 0px;
- width: 81px;
- height: 99px;
-}
-.Pet-Spider-Shade {
- background-image: url(spritesmith-main-13.png);
- background-position: -328px -100px;
- width: 81px;
- height: 99px;
-}
-.Pet-Spider-Skeleton {
- background-image: url(spritesmith-main-13.png);
- background-position: -328px -200px;
- width: 81px;
- height: 99px;
-}
-.Pet-Spider-White {
- background-image: url(spritesmith-main-13.png);
- background-position: 0px -300px;
- width: 81px;
- height: 99px;
-}
-.Pet-Spider-Zombie {
- background-image: url(spritesmith-main-13.png);
- background-position: -82px -300px;
- width: 81px;
- height: 99px;
-}
-.Pet-TRex-Base {
- background-image: url(spritesmith-main-13.png);
- background-position: -82px -500px;
- width: 81px;
- height: 99px;
-}
-.Pet-TRex-CottonCandyBlue {
- background-image: url(spritesmith-main-13.png);
- background-position: -164px -500px;
- width: 81px;
- height: 99px;
-}
-.Pet-TRex-CottonCandyPink {
- background-image: url(spritesmith-main-13.png);
- background-position: -246px -500px;
- width: 81px;
- height: 99px;
-}
-.Pet-TRex-Desert {
- background-image: url(spritesmith-main-13.png);
- background-position: -328px -500px;
- width: 81px;
- height: 99px;
-}
-.Pet-TRex-Golden {
- background-image: url(spritesmith-main-13.png);
- background-position: -410px -500px;
- width: 81px;
- height: 99px;
-}
-.Pet-TRex-Red {
- background-image: url(spritesmith-main-13.png);
- background-position: -492px -500px;
- width: 81px;
- height: 99px;
-}
-.Pet-TRex-Shade {
- background-image: url(spritesmith-main-13.png);
- background-position: -574px -500px;
- width: 81px;
- height: 99px;
-}
-.Pet-TRex-Skeleton {
- background-image: url(spritesmith-main-13.png);
- background-position: -656px 0px;
- width: 81px;
- height: 99px;
-}
-.Pet-TRex-White {
- background-image: url(spritesmith-main-13.png);
- background-position: -656px -100px;
- width: 81px;
- height: 99px;
-}
-.Pet-TRex-Zombie {
- background-image: url(spritesmith-main-13.png);
- background-position: -656px -200px;
- width: 81px;
- height: 99px;
-}
-.Pet-Tiger-Veteran {
- background-image: url(spritesmith-main-13.png);
- background-position: -164px -300px;
- width: 81px;
- height: 99px;
-}
-.Pet-TigerCub-Base {
- background-image: url(spritesmith-main-13.png);
- background-position: -246px -300px;
- width: 81px;
- height: 99px;
-}
-.Pet-TigerCub-CottonCandyBlue {
- background-image: url(spritesmith-main-13.png);
- background-position: -328px -300px;
- width: 81px;
- height: 99px;
-}
-.Pet-TigerCub-CottonCandyPink {
- background-image: url(spritesmith-main-13.png);
- background-position: -410px 0px;
- width: 81px;
- height: 99px;
-}
-.Pet-TigerCub-Desert {
- background-image: url(spritesmith-main-13.png);
- background-position: -410px -100px;
- width: 81px;
- height: 99px;
-}
-.Pet-TigerCub-Floral {
- background-image: url(spritesmith-main-13.png);
- background-position: -410px -200px;
- width: 81px;
- height: 99px;
-}
-.Pet-TigerCub-Golden {
- background-image: url(spritesmith-main-13.png);
- background-position: -410px -300px;
- width: 81px;
- height: 99px;
-}
-.Pet-TigerCub-Peppermint {
- background-image: url(spritesmith-main-13.png);
- background-position: -492px 0px;
- width: 81px;
- height: 99px;
-}
-.Pet-TigerCub-Red {
- background-image: url(spritesmith-main-13.png);
- background-position: -492px -100px;
- width: 81px;
- height: 99px;
-}
-.Pet-TigerCub-Shade {
- background-image: url(spritesmith-main-13.png);
- background-position: -492px -200px;
- width: 81px;
- height: 99px;
-}
-.Pet-TigerCub-Skeleton {
- background-image: url(spritesmith-main-13.png);
- background-position: -492px -300px;
- width: 81px;
- height: 99px;
-}
-.Pet-TigerCub-Spooky {
- background-image: url(spritesmith-main-13.png);
- background-position: 0px -400px;
- width: 81px;
- height: 99px;
-}
-.Pet-TigerCub-White {
- background-image: url(spritesmith-main-13.png);
- background-position: -82px -400px;
- width: 81px;
- height: 99px;
-}
-.Pet-TigerCub-Zombie {
- background-image: url(spritesmith-main-13.png);
- background-position: -164px -400px;
- width: 81px;
- height: 99px;
-}
-.Pet-Treeling-Base {
- background-image: url(spritesmith-main-13.png);
- background-position: -246px -400px;
- width: 81px;
- height: 99px;
-}
-.Pet-Treeling-CottonCandyBlue {
- background-image: url(spritesmith-main-13.png);
- background-position: -328px -400px;
- width: 81px;
- height: 99px;
-}
-.Pet-Treeling-CottonCandyPink {
- background-image: url(spritesmith-main-13.png);
- background-position: -410px -400px;
- width: 81px;
- height: 99px;
-}
-.Pet-Treeling-Desert {
- background-image: url(spritesmith-main-13.png);
- background-position: -492px -400px;
- width: 81px;
- height: 99px;
-}
-.Pet-Treeling-Golden {
- background-image: url(spritesmith-main-13.png);
- background-position: -574px 0px;
- width: 81px;
- height: 99px;
-}
-.Pet-Treeling-Red {
- background-image: url(spritesmith-main-13.png);
- background-position: -574px -100px;
- width: 81px;
- height: 99px;
-}
-.Pet-Treeling-Shade {
- background-image: url(spritesmith-main-13.png);
- background-position: -574px -200px;
- width: 81px;
- height: 99px;
-}
-.Pet-Treeling-Skeleton {
- background-image: url(spritesmith-main-13.png);
- background-position: -574px -300px;
- width: 81px;
- height: 99px;
-}
-.Pet-Treeling-White {
- background-image: url(spritesmith-main-13.png);
- background-position: -574px -400px;
- width: 81px;
- height: 99px;
-}
-.Pet-Treeling-Zombie {
- background-image: url(spritesmith-main-13.png);
- background-position: 0px -500px;
- width: 81px;
- height: 99px;
-}
-.Pet-Turkey-Base {
- background-image: url(spritesmith-main-13.png);
- background-position: -656px -300px;
- width: 81px;
- height: 99px;
-}
-.Pet-Turkey-Gilded {
- background-image: url(spritesmith-main-13.png);
- background-position: -656px -400px;
- width: 81px;
- height: 99px;
-}
-.Pet-Turtle-Base {
- background-image: url(spritesmith-main-13.png);
- background-position: -656px -500px;
- width: 81px;
- height: 99px;
-}
-.Pet-Turtle-CottonCandyBlue {
- background-image: url(spritesmith-main-13.png);
- background-position: 0px -600px;
- width: 81px;
- height: 99px;
-}
-.Pet-Turtle-CottonCandyPink {
- background-image: url(spritesmith-main-13.png);
- background-position: 0px 0px;
- width: 81px;
- height: 99px;
-}
-.Pet-Turtle-Desert {
- background-image: url(spritesmith-main-13.png);
- background-position: -164px -600px;
- width: 81px;
- height: 99px;
-}
-.Pet-Turtle-Golden {
- background-image: url(spritesmith-main-13.png);
- background-position: -246px -600px;
- width: 81px;
- height: 99px;
-}
-.Pet-Turtle-Red {
- background-image: url(spritesmith-main-13.png);
- background-position: -328px -600px;
- width: 81px;
- height: 99px;
-}
-.Pet-Turtle-Shade {
- background-image: url(spritesmith-main-13.png);
- background-position: -410px -600px;
- width: 81px;
- height: 99px;
-}
-.Pet-Turtle-Skeleton {
- background-image: url(spritesmith-main-13.png);
- background-position: -492px -600px;
- width: 81px;
- height: 99px;
-}
-.Pet-Turtle-White {
- background-image: url(spritesmith-main-13.png);
- background-position: -574px -600px;
- width: 81px;
- height: 99px;
-}
-.Pet-Turtle-Zombie {
+.Pet-Snail-Base {
background-image: url(spritesmith-main-13.png);
background-position: -656px -600px;
width: 81px;
height: 99px;
}
-.Pet-Unicorn-Base {
+.Pet-Snail-CottonCandyBlue {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -164px 0px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snail-CottonCandyPink {
+ background-image: url(spritesmith-main-13.png);
+ background-position: 0px -100px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snail-Desert {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -82px -100px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snail-Golden {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -164px -100px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snail-Red {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -246px 0px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snail-Shade {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -246px -100px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snail-Skeleton {
+ background-image: url(spritesmith-main-13.png);
+ background-position: 0px -200px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snail-White {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -82px -200px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snail-Zombie {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -164px -200px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snake-Base {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -246px -200px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snake-CottonCandyBlue {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -328px 0px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snake-CottonCandyPink {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -328px -100px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snake-Desert {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -328px -200px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snake-Golden {
+ background-image: url(spritesmith-main-13.png);
+ background-position: 0px -300px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snake-Red {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -82px -300px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snake-Shade {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -164px -300px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snake-Skeleton {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -246px -300px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snake-White {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -328px -300px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Snake-Zombie {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -410px 0px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Spider-Base {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -410px -100px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Spider-CottonCandyBlue {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -410px -200px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Spider-CottonCandyPink {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -410px -300px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Spider-Desert {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -492px 0px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Spider-Golden {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -492px -100px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Spider-Red {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -492px -200px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Spider-Shade {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -492px -300px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Spider-Skeleton {
+ background-image: url(spritesmith-main-13.png);
+ background-position: 0px -400px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Spider-White {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -82px -400px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Spider-Zombie {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -164px -400px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TRex-Base {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -82px -600px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TRex-CottonCandyBlue {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -164px -600px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TRex-CottonCandyPink {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -246px -600px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TRex-Desert {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -328px -600px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TRex-Golden {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -410px -600px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TRex-Red {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -492px -600px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TRex-Shade {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -574px -600px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TRex-Skeleton {
+ background-image: url(spritesmith-main-13.png);
+ background-position: 0px 0px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TRex-White {
background-image: url(spritesmith-main-13.png);
background-position: -738px 0px;
width: 81px;
height: 99px;
}
-.Pet-Unicorn-CottonCandyBlue {
+.Pet-TRex-Zombie {
background-image: url(spritesmith-main-13.png);
background-position: -738px -100px;
width: 81px;
height: 99px;
}
-.Pet-Unicorn-CottonCandyPink {
+.Pet-Tiger-Veteran {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -246px -400px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TigerCub-Base {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -328px -400px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TigerCub-CottonCandyBlue {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -410px -400px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TigerCub-CottonCandyPink {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -492px -400px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TigerCub-Desert {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -574px 0px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TigerCub-Floral {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -574px -100px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TigerCub-Golden {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -574px -200px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TigerCub-Peppermint {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -574px -300px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TigerCub-Red {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -574px -400px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TigerCub-Shade {
+ background-image: url(spritesmith-main-13.png);
+ background-position: 0px -500px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TigerCub-Skeleton {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -82px -500px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TigerCub-Spooky {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -164px -500px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TigerCub-White {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -246px -500px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-TigerCub-Zombie {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -328px -500px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Treeling-Base {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -410px -500px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Treeling-CottonCandyBlue {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -492px -500px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Treeling-CottonCandyPink {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -574px -500px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Treeling-Desert {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -656px 0px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Treeling-Golden {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -656px -100px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Treeling-Red {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -656px -200px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Treeling-Shade {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -656px -300px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Treeling-Skeleton {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -656px -400px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Treeling-White {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -656px -500px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Treeling-Zombie {
+ background-image: url(spritesmith-main-13.png);
+ background-position: 0px -600px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Turkey-Base {
background-image: url(spritesmith-main-13.png);
background-position: -738px -200px;
width: 81px;
height: 99px;
}
-.Pet-Unicorn-Desert {
+.Pet-Turkey-Gilded {
background-image: url(spritesmith-main-13.png);
background-position: -738px -300px;
width: 81px;
height: 99px;
}
-.Pet-Unicorn-Golden {
+.Pet-Turtle-Base {
background-image: url(spritesmith-main-13.png);
background-position: -738px -400px;
width: 81px;
height: 99px;
}
-.Pet-Unicorn-Red {
+.Pet-Turtle-CottonCandyBlue {
background-image: url(spritesmith-main-13.png);
background-position: -738px -500px;
width: 81px;
height: 99px;
}
-.Pet-Unicorn-Shade {
+.Pet-Turtle-CottonCandyPink {
background-image: url(spritesmith-main-13.png);
background-position: -738px -600px;
width: 81px;
height: 99px;
}
-.Pet-Unicorn-Skeleton {
+.Pet-Turtle-Desert {
background-image: url(spritesmith-main-13.png);
background-position: 0px -700px;
width: 81px;
height: 99px;
}
-.Pet-Unicorn-White {
+.Pet-Turtle-Golden {
background-image: url(spritesmith-main-13.png);
background-position: -82px -700px;
width: 81px;
height: 99px;
}
-.Pet-Unicorn-Zombie {
+.Pet-Turtle-Red {
background-image: url(spritesmith-main-13.png);
background-position: -164px -700px;
width: 81px;
height: 99px;
}
-.Pet-Whale-Base {
+.Pet-Turtle-Shade {
background-image: url(spritesmith-main-13.png);
background-position: -246px -700px;
width: 81px;
height: 99px;
}
-.Pet-Whale-CottonCandyBlue {
+.Pet-Turtle-Skeleton {
background-image: url(spritesmith-main-13.png);
background-position: -328px -700px;
width: 81px;
height: 99px;
}
-.Pet-Whale-CottonCandyPink {
+.Pet-Turtle-White {
background-image: url(spritesmith-main-13.png);
background-position: -410px -700px;
width: 81px;
height: 99px;
}
-.Pet-Whale-Desert {
+.Pet-Turtle-Zombie {
background-image: url(spritesmith-main-13.png);
background-position: -492px -700px;
width: 81px;
height: 99px;
}
-.Pet-Whale-Golden {
+.Pet-Unicorn-Base {
background-image: url(spritesmith-main-13.png);
background-position: -574px -700px;
width: 81px;
height: 99px;
}
-.Pet-Whale-Red {
+.Pet-Unicorn-CottonCandyBlue {
background-image: url(spritesmith-main-13.png);
background-position: -656px -700px;
width: 81px;
height: 99px;
}
-.Pet-Whale-Shade {
+.Pet-Unicorn-CottonCandyPink {
background-image: url(spritesmith-main-13.png);
background-position: -738px -700px;
width: 81px;
height: 99px;
}
-.Pet-Whale-Skeleton {
+.Pet-Unicorn-Desert {
background-image: url(spritesmith-main-13.png);
background-position: -820px 0px;
width: 81px;
height: 99px;
}
-.Pet-Whale-White {
+.Pet-Unicorn-Golden {
background-image: url(spritesmith-main-13.png);
background-position: -820px -100px;
width: 81px;
height: 99px;
}
-.Pet-Whale-Zombie {
+.Pet-Unicorn-Red {
background-image: url(spritesmith-main-13.png);
background-position: -820px -200px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-Base {
+.Pet-Unicorn-Shade {
background-image: url(spritesmith-main-13.png);
background-position: -820px -300px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-CottonCandyBlue {
+.Pet-Unicorn-Skeleton {
background-image: url(spritesmith-main-13.png);
background-position: -820px -400px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-CottonCandyPink {
+.Pet-Unicorn-White {
background-image: url(spritesmith-main-13.png);
background-position: -820px -500px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-Desert {
+.Pet-Unicorn-Zombie {
background-image: url(spritesmith-main-13.png);
background-position: -820px -600px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-Floral {
+.Pet-Whale-Base {
background-image: url(spritesmith-main-13.png);
background-position: -820px -700px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-Golden {
+.Pet-Whale-CottonCandyBlue {
background-image: url(spritesmith-main-13.png);
background-position: 0px -800px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-Peppermint {
+.Pet-Whale-CottonCandyPink {
background-image: url(spritesmith-main-13.png);
background-position: -82px -800px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-Red {
+.Pet-Whale-Desert {
background-image: url(spritesmith-main-13.png);
background-position: -164px -800px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-Shade {
+.Pet-Whale-Golden {
background-image: url(spritesmith-main-13.png);
background-position: -246px -800px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-Skeleton {
+.Pet-Whale-Red {
background-image: url(spritesmith-main-13.png);
background-position: -328px -800px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-Spooky {
+.Pet-Whale-Shade {
background-image: url(spritesmith-main-13.png);
background-position: -410px -800px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-Veteran {
+.Pet-Whale-Skeleton {
background-image: url(spritesmith-main-13.png);
background-position: -492px -800px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-White {
+.Pet-Whale-White {
background-image: url(spritesmith-main-13.png);
background-position: -574px -800px;
width: 81px;
height: 99px;
}
-.Pet-Wolf-Zombie {
+.Pet-Whale-Zombie {
background-image: url(spritesmith-main-13.png);
background-position: -656px -800px;
width: 81px;
height: 99px;
}
+.Pet-Wolf-Base {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -738px -800px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Wolf-CottonCandyBlue {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -820px -800px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Wolf-CottonCandyPink {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -902px 0px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Wolf-Desert {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -902px -100px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Wolf-Floral {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -902px -200px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Wolf-Golden {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -902px -300px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Wolf-Peppermint {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -902px -400px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Wolf-Red {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -902px -500px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Wolf-Shade {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -902px -600px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Wolf-Skeleton {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -902px -700px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Wolf-Spooky {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -902px -800px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Wolf-Veteran {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -984px 0px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Wolf-White {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -984px -100px;
+ width: 81px;
+ height: 99px;
+}
+.Pet-Wolf-Zombie {
+ background-image: url(spritesmith-main-13.png);
+ background-position: -984px -200px;
+ width: 81px;
+ height: 99px;
+}
.Pet_HatchingPotion_Base {
background-image: url(spritesmith-main-13.png);
- background-position: -787px -800px;
+ background-position: -984px -352px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_CottonCandyBlue {
background-image: url(spritesmith-main-13.png);
- background-position: -902px -156px;
+ background-position: -984px -612px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_CottonCandyPink {
background-image: url(spritesmith-main-13.png);
- background-position: -836px -800px;
+ background-position: -984px -404px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Desert {
background-image: url(spritesmith-main-13.png);
- background-position: -902px 0px;
+ background-position: -984px -456px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Floral {
background-image: url(spritesmith-main-13.png);
- background-position: -902px -52px;
+ background-position: -984px -508px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Golden {
background-image: url(spritesmith-main-13.png);
- background-position: -902px -104px;
+ background-position: -984px -560px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Peppermint {
background-image: url(spritesmith-main-13.png);
- background-position: -738px -800px;
+ background-position: -984px -300px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Red {
background-image: url(spritesmith-main-13.png);
- background-position: -902px -208px;
+ background-position: -984px -664px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Shade {
background-image: url(spritesmith-main-13.png);
- background-position: -902px -260px;
+ background-position: -984px -716px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Skeleton {
background-image: url(spritesmith-main-13.png);
- background-position: -902px -312px;
+ background-position: -984px -768px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Spooky {
background-image: url(spritesmith-main-13.png);
- background-position: -902px -364px;
+ background-position: -984px -820px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_White {
background-image: url(spritesmith-main-13.png);
- background-position: -902px -416px;
+ background-position: 0px -900px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Zombie {
background-image: url(spritesmith-main-13.png);
- background-position: -902px -468px;
+ background-position: -49px -900px;
width: 48px;
height: 51px;
}
diff --git a/common/dist/sprites/spritesmith-main-13.png b/common/dist/sprites/spritesmith-main-13.png
index 922727317c..a7afe1f867 100644
Binary files a/common/dist/sprites/spritesmith-main-13.png and b/common/dist/sprites/spritesmith-main-13.png differ
diff --git a/common/dist/sprites/spritesmith-main-2.css b/common/dist/sprites/spritesmith-main-2.css
index 0bc624db33..bf5501f9fe 100644
--- a/common/dist/sprites/spritesmith-main-2.css
+++ b/common/dist/sprites/spritesmith-main-2.css
@@ -1,3946 +1,3946 @@
-.hair_base_12_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_12_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_12_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_12_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -1107px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_black {
+.hair_base_12_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -91px -91px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_13_black {
+.customize-option.hair_base_12_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -116px -106px;
width: 60px;
height: 60px;
}
-.hair_base_13_blond {
+.hair_base_12_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_12_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_12_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_12_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_12_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_12_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_12_white {
background-image: url(spritesmith-main-2.png);
background-position: -182px 0px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_13_blond {
+.customize-option.hair_base_12_white {
background-image: url(spritesmith-main-2.png);
background-position: -207px -15px;
width: 60px;
height: 60px;
}
-.hair_base_13_blue {
+.hair_base_12_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -182px -91px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_13_blue {
+.customize-option.hair_base_12_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -207px -106px;
width: 60px;
height: 60px;
}
-.hair_base_13_brown {
+.hair_base_12_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: 0px -182px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_13_brown {
+.customize-option.hair_base_12_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -25px -197px;
width: 60px;
height: 60px;
}
-.hair_base_13_candycane {
+.hair_base_12_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -91px -182px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_13_candycane {
+.customize-option.hair_base_12_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -116px -197px;
width: 60px;
height: 60px;
}
-.hair_base_13_candycorn {
+.hair_base_12_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -182px -182px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_13_candycorn {
+.customize-option.hair_base_12_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -207px -197px;
width: 60px;
height: 60px;
}
-.hair_base_13_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_green {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -182px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -207px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -182px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -207px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -182px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -207px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_13_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_13_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -182px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -207px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_black {
+.hair_base_13_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: 0px -546px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_14_black {
+.customize-option.hair_base_13_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -25px -561px;
width: 60px;
height: 60px;
}
-.hair_base_14_blond {
+.hair_base_13_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -182px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -207px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -182px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -207px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -182px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -207px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_13_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_13_white {
background-image: url(spritesmith-main-2.png);
background-position: -91px -546px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_14_blond {
+.customize-option.hair_base_13_white {
background-image: url(spritesmith-main-2.png);
background-position: -116px -561px;
width: 60px;
height: 60px;
}
-.hair_base_14_blue {
+.hair_base_13_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -182px -546px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_14_blue {
+.customize-option.hair_base_13_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -207px -561px;
width: 60px;
height: 60px;
}
-.hair_base_14_brown {
+.hair_base_13_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -273px -546px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_14_brown {
+.customize-option.hair_base_13_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -298px -561px;
width: 60px;
height: 60px;
}
-.hair_base_14_candycane {
+.hair_base_13_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -364px -546px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_14_candycane {
+.customize-option.hair_base_13_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -389px -561px;
width: 60px;
height: 60px;
}
-.hair_base_14_candycorn {
+.hair_base_13_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -455px -546px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_14_candycorn {
+.customize-option.hair_base_13_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -480px -561px;
width: 60px;
height: 60px;
}
-.hair_base_14_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -182px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -207px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_red {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_14_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_14_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_black {
+.hair_base_14_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -819px 0px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_2_black {
+.customize-option.hair_base_14_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -844px -15px;
width: 60px;
height: 60px;
}
-.hair_base_2_blond {
+.hair_base_14_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -182px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -207px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -182px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -207px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_14_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_14_white {
background-image: url(spritesmith-main-2.png);
background-position: -819px -91px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_2_blond {
+.customize-option.hair_base_14_white {
background-image: url(spritesmith-main-2.png);
background-position: -844px -106px;
width: 60px;
height: 60px;
}
-.hair_base_2_blue {
+.hair_base_14_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -819px -182px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_2_blue {
+.customize-option.hair_base_14_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -844px -197px;
width: 60px;
height: 60px;
}
-.hair_base_2_brown {
+.hair_base_14_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -819px -273px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_2_brown {
+.customize-option.hair_base_14_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -844px -288px;
width: 60px;
height: 60px;
}
-.hair_base_2_candycane {
+.hair_base_14_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -819px -364px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_2_candycane {
+.customize-option.hair_base_14_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -844px -379px;
width: 60px;
height: 60px;
}
-.hair_base_2_candycorn {
+.hair_base_14_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -819px -455px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_2_candycorn {
+.customize-option.hair_base_14_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -844px -470px;
width: 60px;
height: 60px;
}
-.hair_base_2_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -819px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -844px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -819px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -844px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -819px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -844px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_green {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -182px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -207px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -819px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -844px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -182px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -207px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_2_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_2_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -819px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -844px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_black {
+.hair_base_2_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -910px -910px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_3_black {
+.customize-option.hair_base_2_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -935px -925px;
width: 60px;
height: 60px;
}
-.hair_base_3_blond {
+.hair_base_2_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -819px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -844px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -819px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -844px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -819px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -844px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -182px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -207px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -819px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -844px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -182px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -207px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -819px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_2_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -844px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_2_white {
background-image: url(spritesmith-main-2.png);
background-position: -1001px 0px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_3_blond {
+.customize-option.hair_base_2_white {
background-image: url(spritesmith-main-2.png);
background-position: -1026px -15px;
width: 60px;
height: 60px;
}
-.hair_base_3_blue {
+.hair_base_2_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -1001px -91px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_3_blue {
+.customize-option.hair_base_2_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -1026px -106px;
width: 60px;
height: 60px;
}
-.hair_base_3_brown {
+.hair_base_2_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -1001px -182px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_3_brown {
+.customize-option.hair_base_2_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -1026px -197px;
width: 60px;
height: 60px;
}
-.hair_base_3_candycane {
+.hair_base_2_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -1001px -273px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_3_candycane {
+.customize-option.hair_base_2_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -1026px -288px;
width: 60px;
height: 60px;
}
-.hair_base_3_candycorn {
+.hair_base_2_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -1001px -364px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_3_candycorn {
+.customize-option.hair_base_2_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -1026px -379px;
width: 60px;
height: 60px;
}
-.hair_base_3_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -1001px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -1026px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -1001px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -1026px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -1001px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -1026px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -1001px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -1026px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -1001px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -1026px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -1001px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -1026px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -182px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -207px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -819px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -844px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1001px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1026px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -1107px;
- width: 60px;
- height: 60px;
-}
-.hair_base_3_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_3_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -1107px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -819px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -844px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -182px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -207px -1107px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_black {
+.hair_base_3_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -273px -1092px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_4_black {
+.customize-option.hair_base_3_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -298px -1107px;
width: 60px;
height: 60px;
}
-.hair_base_4_blond {
+.hair_base_3_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1001px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1026px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1001px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1026px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1001px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1026px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1001px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1026px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1001px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1026px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1001px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1026px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -182px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -207px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -819px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -844px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1001px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1026px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -182px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_3_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -207px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_3_white {
background-image: url(spritesmith-main-2.png);
background-position: -364px -1092px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_4_blond {
+.customize-option.hair_base_3_white {
background-image: url(spritesmith-main-2.png);
background-position: -389px -1107px;
width: 60px;
height: 60px;
}
-.hair_base_4_blue {
+.hair_base_3_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -455px -1092px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_4_blue {
+.customize-option.hair_base_3_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -480px -1107px;
width: 60px;
height: 60px;
}
-.hair_base_4_brown {
+.hair_base_3_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -546px -1092px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_4_brown {
+.customize-option.hair_base_3_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -571px -1107px;
width: 60px;
height: 60px;
}
-.hair_base_4_candycane {
+.hair_base_3_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -637px -1092px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_4_candycane {
+.customize-option.hair_base_3_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -662px -1107px;
width: 60px;
height: 60px;
}
-.hair_base_4_candycorn {
+.hair_base_3_zombie {
background-image: url(spritesmith-main-2.png);
background-position: 0px 0px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_4_candycorn {
+.customize-option.hair_base_3_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -25px -15px;
width: 60px;
height: 60px;
}
-.hair_base_4_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -819px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -844px -1107px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -1107px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -1001px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -1026px -1107px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -1107px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -1107px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -182px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -207px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -1001px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -1026px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_4_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -1274px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_4_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -1299px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -1274px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -1299px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_black {
+.hair_base_4_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -1274px -182px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_5_black {
+.customize-option.hair_base_4_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -1299px -197px;
width: 60px;
height: 60px;
}
-.hair_base_5_blond {
+.hair_base_4_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -819px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -844px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1001px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1026px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -182px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -207px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -819px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -844px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1001px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1026px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1274px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1299px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1274px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_4_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1299px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_4_white {
background-image: url(spritesmith-main-2.png);
background-position: -1274px -273px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_5_blond {
+.customize-option.hair_base_4_white {
background-image: url(spritesmith-main-2.png);
background-position: -1299px -288px;
width: 60px;
height: 60px;
}
-.hair_base_5_blue {
+.hair_base_4_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -1274px -364px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_5_blue {
+.customize-option.hair_base_4_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -1299px -379px;
width: 60px;
height: 60px;
}
-.hair_base_5_brown {
+.hair_base_4_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -1274px -455px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_5_brown {
+.customize-option.hair_base_4_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -1299px -470px;
width: 60px;
height: 60px;
}
-.hair_base_5_candycane {
+.hair_base_4_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -1274px -546px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_5_candycane {
+.customize-option.hair_base_4_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -1299px -561px;
width: 60px;
height: 60px;
}
-.hair_base_5_candycorn {
+.hair_base_4_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -1274px -637px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_5_candycorn {
+.customize-option.hair_base_4_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -1299px -652px;
width: 60px;
height: 60px;
}
-.hair_base_5_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -1274px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -1299px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -1274px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -1299px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -1274px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -1299px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -1274px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -1299px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -1274px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -1299px -1107px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -1274px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -1299px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -182px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -207px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -819px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -844px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1001px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1026px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1274px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1299px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_5_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_5_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_black {
+.hair_base_5_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -1365px -1092px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_6_black {
+.customize-option.hair_base_5_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -1390px -1107px;
width: 60px;
height: 60px;
}
-.hair_base_6_blond {
+.hair_base_5_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1274px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1299px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1274px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1299px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1274px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1299px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1274px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1299px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1274px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1299px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1274px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1299px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -182px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -207px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -819px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -844px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1001px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1026px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1274px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1299px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_5_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_5_white {
background-image: url(spritesmith-main-2.png);
background-position: -1365px -1183px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_6_blond {
+.customize-option.hair_base_5_white {
background-image: url(spritesmith-main-2.png);
background-position: -1390px -1198px;
width: 60px;
height: 60px;
}
-.hair_base_6_blue {
+.hair_base_5_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -1365px -1274px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_6_blue {
+.customize-option.hair_base_5_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -1390px -1289px;
width: 60px;
height: 60px;
}
-.hair_base_6_brown {
+.hair_base_5_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: 0px -1365px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_6_brown {
+.customize-option.hair_base_5_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -25px -1380px;
width: 60px;
height: 60px;
}
-.hair_base_6_candycane {
+.hair_base_5_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -91px -1365px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_6_candycane {
+.customize-option.hair_base_5_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -116px -1380px;
width: 60px;
height: 60px;
}
-.hair_base_6_candycorn {
+.hair_base_5_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -182px -1365px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_6_candycorn {
+.customize-option.hair_base_5_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -207px -1380px;
width: 60px;
height: 60px;
}
-.hair_base_6_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -819px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -844px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -1001px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -1026px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -1274px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -1299px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -1107px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -1456px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -1471px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px -1456px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -1471px;
- width: 60px;
- height: 60px;
-}
-.hair_base_6_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -182px -1456px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_6_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -207px -1471px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -182px -1547px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_TRUred {
- background-image: url(spritesmith-main-2.png);
- background-position: -207px -1562px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -1456px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -1471px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_black {
+.hair_base_6_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -364px -1456px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_7_black {
+.customize-option.hair_base_6_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -389px -1471px;
width: 60px;
height: 60px;
}
-.hair_base_7_blond {
+.hair_base_6_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -819px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -844px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1001px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1026px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1274px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1299px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -1471px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -1471px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -182px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -207px -1471px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_6_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -1471px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_6_white {
background-image: url(spritesmith-main-2.png);
background-position: -455px -1456px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_7_blond {
+.customize-option.hair_base_6_white {
background-image: url(spritesmith-main-2.png);
background-position: -480px -1471px;
width: 60px;
height: 60px;
}
-.hair_base_7_blue {
+.hair_base_6_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -546px -1456px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_7_blue {
+.customize-option.hair_base_6_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -571px -1471px;
width: 60px;
height: 60px;
}
-.hair_base_7_brown {
+.hair_base_6_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -637px -1456px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_7_brown {
+.customize-option.hair_base_6_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -662px -1471px;
width: 60px;
height: 60px;
}
-.hair_base_7_candycane {
+.hair_base_6_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -728px -1456px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_7_candycane {
+.customize-option.hair_base_6_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -753px -1471px;
width: 60px;
height: 60px;
}
-.hair_base_7_candycorn {
+.hair_base_6_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -819px -1456px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_7_candycorn {
+.customize-option.hair_base_6_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -844px -1471px;
width: 60px;
height: 60px;
}
-.hair_base_7_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -910px -1456px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_festive {
- background-image: url(spritesmith-main-2.png);
- background-position: -935px -1471px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -1001px -1456px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_frost {
- background-image: url(spritesmith-main-2.png);
- background-position: -1026px -1471px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -1092px -1456px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_ghostwhite {
- background-image: url(spritesmith-main-2.png);
- background-position: -1117px -1471px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -1183px -1456px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_green {
- background-image: url(spritesmith-main-2.png);
- background-position: -1208px -1471px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -1274px -1456px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_halloween {
- background-image: url(spritesmith-main-2.png);
- background-position: -1299px -1471px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -1365px -1456px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_holly {
- background-image: url(spritesmith-main-2.png);
- background-position: -1390px -1471px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -1456px -1456px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_hollygreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -1481px -1471px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_midnight {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_pblue {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_pblue2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_peppermint {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_pgreen {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_pgreen2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_porange {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_porange2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_ppink {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_ppink2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_ppurple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -925px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_ppurple2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -1016px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_pumpkin {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -1107px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_purple {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_pyellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -1289px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -1365px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_pyellow2 {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -1380px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1547px -1456px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_rainbow {
- background-image: url(spritesmith-main-2.png);
- background-position: -1572px -1471px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_red {
- background-image: url(spritesmith-main-2.png);
- background-position: 0px -1547px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_red {
- background-image: url(spritesmith-main-2.png);
- background-position: -25px -1562px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -91px -1547px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_snowy {
- background-image: url(spritesmith-main-2.png);
- background-position: -116px -1562px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -273px -1547px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_white {
- background-image: url(spritesmith-main-2.png);
- background-position: -298px -1562px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -364px -1547px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_winternight {
- background-image: url(spritesmith-main-2.png);
- background-position: -389px -1562px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -455px -1547px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_winterstar {
- background-image: url(spritesmith-main-2.png);
- background-position: -480px -1562px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -546px -1547px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_yellow {
- background-image: url(spritesmith-main-2.png);
- background-position: -571px -1562px;
- width: 60px;
- height: 60px;
-}
-.hair_base_7_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -637px -1547px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_7_zombie {
- background-image: url(spritesmith-main-2.png);
- background-position: -662px -1562px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -728px -1547px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_aurora {
- background-image: url(spritesmith-main-2.png);
- background-position: -753px -1562px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_black {
+.hair_base_7_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -819px -1547px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_black {
+.customize-option.hair_base_7_TRUred {
background-image: url(spritesmith-main-2.png);
background-position: -844px -1562px;
width: 60px;
height: 60px;
}
-.hair_base_8_blond {
+.hair_base_7_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -910px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_aurora {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -935px -1471px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1001px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_black {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1026px -1471px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1092px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_blond {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1117px -1471px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1183px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_blue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1208px -1471px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1274px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_brown {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1299px -1471px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1365px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_candycane {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1390px -1471px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1456px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_candycorn {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1481px -1471px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_festive {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_frost {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_ghostwhite {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_green {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_halloween {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_holly {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_hollygreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_midnight {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_pblue {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_pblue2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_peppermint {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -925px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_pgreen {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_pgreen2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_porange {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_porange2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_ppink {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1547px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_ppink2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -1572px -1471px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: 0px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_ppurple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -25px -1562px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -91px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_ppurple2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -116px -1562px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -182px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_pumpkin {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -207px -1562px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -273px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_purple {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -298px -1562px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -364px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_pyellow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -389px -1562px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -455px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_pyellow2 {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -480px -1562px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -546px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_rainbow {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -571px -1562px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -637px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_red {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -662px -1562px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -728px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_7_snowy {
+ background-image: url(spritesmith-main-2.png);
+ background-position: -753px -1562px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_7_white {
background-image: url(spritesmith-main-2.png);
background-position: -910px -1547px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_blond {
+.customize-option.hair_base_7_white {
background-image: url(spritesmith-main-2.png);
background-position: -935px -1562px;
width: 60px;
height: 60px;
}
-.hair_base_8_blue {
+.hair_base_7_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -1001px -1547px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_blue {
+.customize-option.hair_base_7_winternight {
background-image: url(spritesmith-main-2.png);
background-position: -1026px -1562px;
width: 60px;
height: 60px;
}
-.hair_base_8_brown {
+.hair_base_7_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -1092px -1547px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_brown {
+.customize-option.hair_base_7_winterstar {
background-image: url(spritesmith-main-2.png);
background-position: -1117px -1562px;
width: 60px;
height: 60px;
}
-.hair_base_8_candycane {
+.hair_base_7_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -1183px -1547px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_candycane {
+.customize-option.hair_base_7_yellow {
background-image: url(spritesmith-main-2.png);
background-position: -1208px -1562px;
width: 60px;
height: 60px;
}
-.hair_base_8_candycorn {
+.hair_base_7_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -1274px -1547px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_candycorn {
+.customize-option.hair_base_7_zombie {
background-image: url(spritesmith-main-2.png);
background-position: -1299px -1562px;
width: 60px;
height: 60px;
}
-.hair_base_8_festive {
+.hair_base_8_aurora {
background-image: url(spritesmith-main-2.png);
background-position: -1365px -1547px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_festive {
+.customize-option.hair_base_8_aurora {
background-image: url(spritesmith-main-2.png);
background-position: -1390px -1562px;
width: 60px;
height: 60px;
}
-.hair_base_8_frost {
+.hair_base_8_black {
background-image: url(spritesmith-main-2.png);
background-position: -1456px -1547px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_frost {
+.customize-option.hair_base_8_black {
background-image: url(spritesmith-main-2.png);
background-position: -1481px -1562px;
width: 60px;
height: 60px;
}
-.hair_base_8_ghostwhite {
+.hair_base_8_blond {
background-image: url(spritesmith-main-2.png);
background-position: -1547px -1547px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_ghostwhite {
+.customize-option.hair_base_8_blond {
background-image: url(spritesmith-main-2.png);
background-position: -1572px -1562px;
width: 60px;
height: 60px;
}
-.hair_base_8_green {
+.hair_base_8_blue {
background-image: url(spritesmith-main-2.png);
background-position: -1638px 0px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_green {
+.customize-option.hair_base_8_blue {
background-image: url(spritesmith-main-2.png);
background-position: -1663px -15px;
width: 60px;
height: 60px;
}
-.hair_base_8_halloween {
+.hair_base_8_brown {
background-image: url(spritesmith-main-2.png);
background-position: -1638px -91px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_halloween {
+.customize-option.hair_base_8_brown {
background-image: url(spritesmith-main-2.png);
background-position: -1663px -106px;
width: 60px;
height: 60px;
}
-.hair_base_8_holly {
+.hair_base_8_candycane {
background-image: url(spritesmith-main-2.png);
background-position: -1638px -182px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_holly {
+.customize-option.hair_base_8_candycane {
background-image: url(spritesmith-main-2.png);
background-position: -1663px -197px;
width: 60px;
height: 60px;
}
-.hair_base_8_hollygreen {
+.hair_base_8_candycorn {
background-image: url(spritesmith-main-2.png);
background-position: -1638px -273px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_hollygreen {
+.customize-option.hair_base_8_candycorn {
background-image: url(spritesmith-main-2.png);
background-position: -1663px -288px;
width: 60px;
height: 60px;
}
-.hair_base_8_midnight {
+.hair_base_8_festive {
background-image: url(spritesmith-main-2.png);
background-position: -1638px -364px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_8_midnight {
+.customize-option.hair_base_8_festive {
background-image: url(spritesmith-main-2.png);
background-position: -1663px -379px;
width: 60px;
diff --git a/common/dist/sprites/spritesmith-main-2.png b/common/dist/sprites/spritesmith-main-2.png
index 3e44e8b436..9eb95c8891 100644
Binary files a/common/dist/sprites/spritesmith-main-2.png and b/common/dist/sprites/spritesmith-main-2.png differ
diff --git a/common/dist/sprites/spritesmith-main-3.css b/common/dist/sprites/spritesmith-main-3.css
index dd29eaeae1..598ea7b0d1 100644
--- a/common/dist/sprites/spritesmith-main-3.css
+++ b/common/dist/sprites/spritesmith-main-3.css
@@ -1,3702 +1,3756 @@
.hair_base_8_TRUred {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_TRUred {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_pblue {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_pblue {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -1198px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_peppermint {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_peppermint {
- background-image: url(spritesmith-main-3.png);
- background-position: -25px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_pgreen {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_pgreen {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_porange {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_porange {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -25px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_ppink {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_ppink {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_ppurple {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_ppurple {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_pumpkin {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_pumpkin {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_purple {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_purple {
- background-image: url(spritesmith-main-3.png);
- background-position: -25px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_pyellow {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_pyellow {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_rainbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_rainbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_red {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_red {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_snowy {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_snowy {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_white {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_white {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_winternight {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_winternight {
- background-image: url(spritesmith-main-3.png);
- background-position: -25px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_winterstar {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_winterstar {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_yellow {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_yellow {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_8_zombie {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_8_zombie {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_TRUred {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_TRUred {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_aurora {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_aurora {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_black {
background-image: url(spritesmith-main-3.png);
background-position: -455px 0px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_9_black {
+.customize-option.hair_base_8_TRUred {
background-image: url(spritesmith-main-3.png);
background-position: -480px -15px;
width: 60px;
height: 60px;
}
-.hair_base_9_blond {
+.hair_base_8_frost {
background-image: url(spritesmith-main-3.png);
- background-position: -455px -91px;
+ background-position: -91px 0px;
width: 90px;
height: 90px;
}
-.customize-option.hair_base_9_blond {
+.customize-option.hair_base_8_frost {
background-image: url(spritesmith-main-3.png);
- background-position: -480px -106px;
+ background-position: -116px -15px;
width: 60px;
height: 60px;
}
-.hair_base_9_blue {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_blue {
- background-image: url(spritesmith-main-3.png);
- background-position: -480px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_brown {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_brown {
- background-image: url(spritesmith-main-3.png);
- background-position: -480px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_candycane {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_candycane {
- background-image: url(spritesmith-main-3.png);
- background-position: -480px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_candycorn {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_candycorn {
- background-image: url(spritesmith-main-3.png);
- background-position: -25px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_festive {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_festive {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_frost {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_frost {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_ghostwhite {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_ghostwhite {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_green {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_green {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_halloween {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_halloween {
- background-image: url(spritesmith-main-3.png);
- background-position: -480px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_holly {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_holly {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_hollygreen {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_hollygreen {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_midnight {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_midnight {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_pblue {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_pblue {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_peppermint {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_peppermint {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_pgreen {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_pgreen {
- background-image: url(spritesmith-main-3.png);
- background-position: -25px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_porange {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_porange {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_ppink {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_ppink {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -480px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_ppurple {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_ppurple {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_pumpkin {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_pumpkin {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_purple {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_purple {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_pyellow {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_pyellow {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_rainbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_rainbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_red {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_red {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_snowy {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_snowy {
- background-image: url(spritesmith-main-3.png);
- background-position: -25px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_white {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_white {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_winternight {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_winternight {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_winterstar {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_winterstar {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_yellow {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_yellow {
- background-image: url(spritesmith-main-3.png);
- background-position: -480px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_base_9_zombie {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_base_9_zombie {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_1_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_1_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_1_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_1_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_1_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_1_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_1_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_1_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_1_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_1_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_1_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_1_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_2_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_2_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_2_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_2_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_2_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_2_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_2_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_2_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -25px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_2_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_2_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_2_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_2_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_3_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_3_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_3_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_3_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_3_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_3_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -480px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_3_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_3_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_3_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_3_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_beard_3_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_beard_3_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -15px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -106px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -197px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -288px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -379px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_1_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_1_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -470px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_2_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_2_pblue2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -561px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_2_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_2_pgreen2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -652px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_2_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_2_porange2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -743px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_2_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_2_ppink2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -25px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_2_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_2_ppurple2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -834px;
- width: 60px;
- height: 60px;
-}
-.hair_mustache_2_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.hair_mustache_2_pyellow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -834px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_black {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_black {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -849px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_blue {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_blue {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -849px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_convict {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_convict {
- background-image: url(spritesmith-main-3.png);
- background-position: -480px -849px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_cross {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_cross {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -849px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_fire {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_fire {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -849px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_green {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_green {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -849px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_horizon {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_horizon {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -849px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_ocean {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_ocean {
- background-image: url(spritesmith-main-3.png);
- background-position: -935px -30px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_pink {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_pink {
- background-image: url(spritesmith-main-3.png);
- background-position: -935px -121px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_purple {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_purple {
- background-image: url(spritesmith-main-3.png);
- background-position: -935px -212px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_rainbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_rainbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -935px -303px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_redblue {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_redblue {
- background-image: url(spritesmith-main-3.png);
- background-position: -935px -394px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_thunder {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_thunder {
- background-image: url(spritesmith-main-3.png);
- background-position: -935px -485px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_tropical {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_tropical {
- background-image: url(spritesmith-main-3.png);
- background-position: -935px -576px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_white {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_white {
- background-image: url(spritesmith-main-3.png);
- background-position: -935px -667px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_yellow {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_yellow {
- background-image: url(spritesmith-main-3.png);
- background-position: -935px -758px;
- width: 60px;
- height: 60px;
-}
-.broad_shirt_zombie {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.broad_shirt_zombie {
- background-image: url(spritesmith-main-3.png);
- background-position: -935px -849px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_black {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_black {
- background-image: url(spritesmith-main-3.png);
- background-position: -25px -940px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_blue {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_blue {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -940px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_convict {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_convict {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -940px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_cross {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_cross {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -940px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_fire {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_fire {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -940px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_green {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_green {
- background-image: url(spritesmith-main-3.png);
- background-position: -480px -940px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_horizon {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_horizon {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -940px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_ocean {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_ocean {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -940px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_pink {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_pink {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -940px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_purple {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_purple {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -940px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_rainbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_rainbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -935px -940px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_redblue {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_redblue {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -30px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_thunder {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_thunder {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -121px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_tropical {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_tropical {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -212px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_white {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_white {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -303px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_yellow {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_yellow {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -394px;
- width: 60px;
- height: 60px;
-}
-.slim_shirt_zombie {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.slim_shirt_zombie {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -485px;
- width: 60px;
- height: 60px;
-}
-.skin_0ff591 {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_0ff591 {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -652px;
- width: 60px;
- height: 60px;
-}
-.skin_0ff591_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_0ff591_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -561px;
- width: 60px;
- height: 60px;
-}
-.skin_2b43f6 {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_2b43f6 {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -834px;
- width: 60px;
- height: 60px;
-}
-.skin_2b43f6_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_2b43f6_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -743px;
- width: 60px;
- height: 60px;
-}
-.skin_6bd049 {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_6bd049 {
- background-image: url(spritesmith-main-3.png);
- background-position: -25px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_6bd049_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_6bd049_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -925px;
- width: 60px;
- height: 60px;
-}
-.skin_800ed0 {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_800ed0 {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_800ed0_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_800ed0_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_915533 {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_915533 {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_915533_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_915533_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_98461a {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_98461a {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_98461a_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_98461a_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -480px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_bear {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_bear {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_bear_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_bear_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_c06534 {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_c06534 {
- background-image: url(spritesmith-main-3.png);
- background-position: -935px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_c06534_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_c06534_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_c3e1dc {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_c3e1dc {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -15px;
- width: 60px;
- height: 60px;
-}
-.skin_c3e1dc_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_c3e1dc_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_cactus {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_cactus {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -197px;
- width: 60px;
- height: 60px;
-}
-.skin_cactus_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_cactus_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -106px;
- width: 60px;
- height: 60px;
-}
-.skin_candycorn {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_candycorn {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -379px;
- width: 60px;
- height: 60px;
-}
-.skin_candycorn_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_candycorn_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -288px;
- width: 60px;
- height: 60px;
-}
-.skin_clownfish {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_clownfish {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -561px;
- width: 60px;
- height: 60px;
-}
-.skin_clownfish_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_clownfish_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -470px;
- width: 60px;
- height: 60px;
-}
-.skin_d7a9f7 {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_d7a9f7 {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -743px;
- width: 60px;
- height: 60px;
-}
-.skin_d7a9f7_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_d7a9f7_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -652px;
- width: 60px;
- height: 60px;
-}
-.skin_ddc994 {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_ddc994 {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -925px;
- width: 60px;
- height: 60px;
-}
-.skin_ddc994_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_ddc994_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -834px;
- width: 60px;
- height: 60px;
-}
-.skin_deepocean {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_deepocean {
- background-image: url(spritesmith-main-3.png);
- background-position: -25px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_deepocean_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_deepocean_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_ea8349 {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_ea8349 {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_ea8349_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_ea8349_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_eb052b {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_eb052b {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_eb052b_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_eb052b_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_f5a76e {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_f5a76e {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_f5a76e_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_f5a76e_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -480px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_f5d70f {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_f5d70f {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_f5d70f_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_f5d70f_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_f69922 {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_f69922 {
- background-image: url(spritesmith-main-3.png);
- background-position: -935px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_f69922_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_f69922_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -844px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_fox {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_fox {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_fox_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_fox_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_ghost {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px -91px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_ghost {
- background-image: url(spritesmith-main-3.png);
- background-position: -1208px -106px;
- width: 60px;
- height: 60px;
-}
-.skin_ghost_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px 0px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_ghost_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1208px -15px;
- width: 60px;
- height: 60px;
-}
-.skin_lion {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px -273px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_lion {
- background-image: url(spritesmith-main-3.png);
- background-position: -1208px -288px;
- width: 60px;
- height: 60px;
-}
-.skin_lion_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px -182px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_lion_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1208px -197px;
- width: 60px;
- height: 60px;
-}
-.skin_merblue {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_merblue {
- background-image: url(spritesmith-main-3.png);
- background-position: -1208px -470px;
- width: 60px;
- height: 60px;
-}
-.skin_merblue_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px -364px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_merblue_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1208px -379px;
- width: 60px;
- height: 60px;
-}
-.skin_mergold {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px -637px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_mergold {
- background-image: url(spritesmith-main-3.png);
- background-position: -1208px -652px;
- width: 60px;
- height: 60px;
-}
-.skin_mergold_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px -546px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_mergold_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1208px -561px;
- width: 60px;
- height: 60px;
-}
-.skin_mergreen {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px -819px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_mergreen {
- background-image: url(spritesmith-main-3.png);
- background-position: -1208px -834px;
- width: 60px;
- height: 60px;
-}
-.skin_mergreen_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_mergreen_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1208px -743px;
- width: 60px;
- height: 60px;
-}
-.skin_merruby {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_merruby {
- background-image: url(spritesmith-main-3.png);
- background-position: -1208px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_merruby_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px -910px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_merruby_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1208px -925px;
- width: 60px;
- height: 60px;
-}
-.skin_monster {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_monster {
- background-image: url(spritesmith-main-3.png);
- background-position: -25px -1198px;
- width: 60px;
- height: 60px;
-}
-.skin_monster_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_monster_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1208px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_ogre {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_ogre {
- background-image: url(spritesmith-main-3.png);
- background-position: -207px -1198px;
- width: 60px;
- height: 60px;
-}
-.skin_ogre_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_ogre_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -116px -1198px;
- width: 60px;
- height: 60px;
-}
-.skin_panda {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_panda {
- background-image: url(spritesmith-main-3.png);
- background-position: -389px -1198px;
- width: 60px;
- height: 60px;
-}
-.skin_panda_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_panda_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -298px -1198px;
- width: 60px;
- height: 60px;
-}
-.skin_pastelBlue {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_pastelBlue {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -1198px;
- width: 60px;
- height: 60px;
-}
-.skin_pastelBlue_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_pastelBlue_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -480px -1198px;
- width: 60px;
- height: 60px;
-}
-.skin_pastelGreen {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_pastelGreen {
- background-image: url(spritesmith-main-3.png);
- background-position: -753px -1198px;
- width: 60px;
- height: 60px;
-}
-.skin_pastelGreen_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -1183px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_pastelGreen_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -662px -1198px;
- width: 60px;
- height: 60px;
-}
-.skin_pastelOrange {
+.hair_base_8_ghostwhite {
background-image: url(spritesmith-main-3.png);
background-position: -910px -1183px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pastelOrange {
+.customize-option.hair_base_8_ghostwhite {
background-image: url(spritesmith-main-3.png);
background-position: -935px -1198px;
width: 60px;
height: 60px;
}
-.skin_pastelOrange_sleep {
+.hair_base_8_green {
background-image: url(spritesmith-main-3.png);
- background-position: 0px 0px;
+ background-position: 0px -91px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pastelOrange_sleep {
+.customize-option.hair_base_8_green {
background-image: url(spritesmith-main-3.png);
- background-position: -25px -15px;
+ background-position: -25px -106px;
width: 60px;
height: 60px;
}
-.skin_pastelPink {
+.hair_base_8_halloween {
background-image: url(spritesmith-main-3.png);
- background-position: -1092px -1183px;
+ background-position: -91px -91px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pastelPink {
+.customize-option.hair_base_8_halloween {
background-image: url(spritesmith-main-3.png);
- background-position: -1117px -1198px;
+ background-position: -116px -106px;
width: 60px;
height: 60px;
}
-.skin_pastelPink_sleep {
+.hair_base_8_holly {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_holly {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_hollygreen {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_hollygreen {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_midnight {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_midnight {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -25px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_pblue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_pblue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -116px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_peppermint {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_peppermint {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_pgreen {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_pgreen {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_porange {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_porange {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -25px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -116px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_ppink {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_ppink {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_ppurple {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_ppurple {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_pumpkin {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_pumpkin {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_purple {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_purple {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_pyellow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_pyellow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -25px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -116px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_rainbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_rainbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_red {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_red {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_snowy {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_snowy {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_white {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_white {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -480px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_winternight {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_winternight {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -480px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_winterstar {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_winterstar {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -480px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_yellow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_yellow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -480px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_8_zombie {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_8_zombie {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -25px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_TRUred {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_TRUred {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_aurora {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_aurora {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -116px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_black {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_black {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_blond {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_blond {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_blue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_blue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_brown {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_brown {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -480px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_candycane {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_candycane {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_candycorn {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_candycorn {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_festive {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_festive {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_frost {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_frost {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_ghostwhite {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_ghostwhite {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_green {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_green {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_halloween {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_halloween {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -25px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_holly {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_holly {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -116px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_hollygreen {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_hollygreen {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_midnight {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_midnight {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_pblue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_pblue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -480px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_peppermint {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_peppermint {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_pgreen {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_pgreen {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_porange {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_porange {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_ppink {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_ppink {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_ppurple {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_ppurple {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -25px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_pumpkin {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_pumpkin {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -116px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_purple {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_purple {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_pyellow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_pyellow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_rainbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_rainbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -480px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_red {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_red {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_snowy {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_snowy {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_white {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_white {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_winternight {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_winternight {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_winterstar {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_winterstar {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_yellow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_yellow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_base_9_zombie {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_base_9_zombie {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_1_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_1_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_1_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_1_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_1_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_1_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -25px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_1_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_1_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -116px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_1_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_1_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_1_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_1_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_2_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_2_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_2_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_2_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -480px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_2_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_2_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_2_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_2_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_2_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_2_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_2_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_2_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -15px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_3_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_3_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -106px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_3_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_3_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -197px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_3_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_3_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -288px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_3_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_3_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -379px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_3_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_3_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -470px;
+ width: 60px;
+ height: 60px;
+}
+.hair_beard_3_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_beard_3_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -561px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -652px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -743px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -25px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -116px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_1_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_1_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_2_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_pblue2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_2_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_pgreen2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -480px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_2_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_porange2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_2_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_ppink2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_2_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_ppurple2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -834px;
+ width: 60px;
+ height: 60px;
+}
+.hair_mustache_2_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.hair_mustache_2_pyellow2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -834px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_black {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_black {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -30px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_blue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_blue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -121px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_convict {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_convict {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -212px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_cross {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_cross {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -303px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_fire {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_fire {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -394px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_green {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_green {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -485px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_horizon {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_horizon {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -576px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_ocean {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_ocean {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -667px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_pink {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_pink {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -758px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_purple {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_purple {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -849px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_rainbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_rainbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -25px -940px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_redblue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_redblue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -116px -940px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_thunder {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_thunder {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -940px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_tropical {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_tropical {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -940px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_white {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_white {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -940px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_yellow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_yellow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -480px -940px;
+ width: 60px;
+ height: 60px;
+}
+.broad_shirt_zombie {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.broad_shirt_zombie {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -940px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_black {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_black {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -940px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_blue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_blue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -940px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_convict {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_convict {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -940px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_cross {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_cross {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -940px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_fire {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_fire {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -30px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_green {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_green {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -121px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_horizon {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_horizon {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -212px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_ocean {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_ocean {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -303px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_pink {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_pink {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -394px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_purple {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_purple {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -485px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_rainbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_rainbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -576px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_redblue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_redblue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -667px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_thunder {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_thunder {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -758px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_tropical {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_tropical {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -849px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_white {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_white {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -940px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_yellow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_yellow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -25px -1031px;
+ width: 60px;
+ height: 60px;
+}
+.slim_shirt_zombie {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.slim_shirt_zombie {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -116px -1031px;
+ width: 60px;
+ height: 60px;
+}
+.skin_0ff591 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_0ff591 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_0ff591_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_0ff591_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_2b43f6 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_2b43f6 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -480px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_2b43f6_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_2b43f6_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_6bd049 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_6bd049 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_6bd049_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_6bd049_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_800ed0 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_800ed0 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_800ed0_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_800ed0_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_915533 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_915533 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_915533_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_915533_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_98461a {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_98461a {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1117px -106px;
+ width: 60px;
+ height: 60px;
+}
+.skin_98461a_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_98461a_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1117px -15px;
+ width: 60px;
+ height: 60px;
+}
+.skin_bear {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_bear {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1117px -288px;
+ width: 60px;
+ height: 60px;
+}
+.skin_bear_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_bear_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1117px -197px;
+ width: 60px;
+ height: 60px;
+}
+.skin_c06534 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_c06534 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1117px -470px;
+ width: 60px;
+ height: 60px;
+}
+.skin_c06534_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_c06534_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1117px -379px;
+ width: 60px;
+ height: 60px;
+}
+.skin_c3e1dc {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_c3e1dc {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1117px -652px;
+ width: 60px;
+ height: 60px;
+}
+.skin_c3e1dc_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_c3e1dc_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1117px -561px;
+ width: 60px;
+ height: 60px;
+}
+.skin_cactus {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_cactus {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1117px -834px;
+ width: 60px;
+ height: 60px;
+}
+.skin_cactus_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_cactus_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1117px -743px;
+ width: 60px;
+ height: 60px;
+}
+.skin_candycorn {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_candycorn {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1117px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_candycorn_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_candycorn_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1117px -925px;
+ width: 60px;
+ height: 60px;
+}
+.skin_clownfish {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_clownfish {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -116px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_clownfish_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_clownfish_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -25px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_d7a9f7 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_d7a9f7 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_d7a9f7_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_d7a9f7_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_ddc994 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_ddc994 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -480px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_ddc994_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_ddc994_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_deepocean {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_deepocean {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_deepocean_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_deepocean_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_ea8349 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_ea8349 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_ea8349_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_ea8349_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_eb052b {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_eb052b {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_eb052b_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_eb052b_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_f5a76e {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px 0px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_f5a76e {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1208px -15px;
+ width: 60px;
+ height: 60px;
+}
+.skin_f5a76e_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_f5a76e_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1117px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_f5d70f {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px -182px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_f5d70f {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1208px -197px;
+ width: 60px;
+ height: 60px;
+}
+.skin_f5d70f_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px -91px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_f5d70f_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1208px -106px;
+ width: 60px;
+ height: 60px;
+}
+.skin_f69922 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px -364px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_f69922 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1208px -379px;
+ width: 60px;
+ height: 60px;
+}
+.skin_f69922_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px -273px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_f69922_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1208px -288px;
+ width: 60px;
+ height: 60px;
+}
+.skin_fox {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px -546px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_fox {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1208px -561px;
+ width: 60px;
+ height: 60px;
+}
+.skin_fox_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_fox_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1208px -470px;
+ width: 60px;
+ height: 60px;
+}
+.skin_ghost {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_ghost {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1208px -743px;
+ width: 60px;
+ height: 60px;
+}
+.skin_ghost_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_ghost_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1208px -652px;
+ width: 60px;
+ height: 60px;
+}
+.skin_lion {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_lion {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1208px -925px;
+ width: 60px;
+ height: 60px;
+}
+.skin_lion_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px -819px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_lion_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1208px -834px;
+ width: 60px;
+ height: 60px;
+}
+.skin_merblue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_merblue {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1208px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_merblue_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_merblue_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1208px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_mergold {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_mergold {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -116px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.skin_mergold_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_mergold_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -25px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.skin_mergreen {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_mergreen {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -298px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.skin_mergreen_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_mergreen_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.skin_merruby {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_merruby {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -480px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.skin_merruby_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_merruby_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.skin_monster {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_monster {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -662px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.skin_monster_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_monster_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -571px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.skin_ogre {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_ogre {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -844px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.skin_ogre_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_ogre_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -753px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.skin_panda {
background-image: url(spritesmith-main-3.png);
background-position: -1001px -1183px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pastelPink_sleep {
+.customize-option.skin_panda {
background-image: url(spritesmith-main-3.png);
background-position: -1026px -1198px;
width: 60px;
height: 60px;
}
-.skin_pastelPurple {
+.skin_panda_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1274px 0px;
+ background-position: 0px 0px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pastelPurple {
+.customize-option.skin_panda_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1299px -15px;
+ background-position: -25px -15px;
width: 60px;
height: 60px;
}
-.skin_pastelPurple_sleep {
+.skin_pastelBlue {
background-image: url(spritesmith-main-3.png);
background-position: -1183px -1183px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pastelPurple_sleep {
+.customize-option.skin_pastelBlue {
background-image: url(spritesmith-main-3.png);
background-position: -1208px -1198px;
width: 60px;
height: 60px;
}
-.skin_pastelRainbowChevron {
+.skin_pastelBlue_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1274px -182px;
+ background-position: -1092px -1183px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pastelRainbowChevron {
+.customize-option.skin_pastelBlue_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1299px -197px;
+ background-position: -1117px -1198px;
width: 60px;
height: 60px;
}
-.skin_pastelRainbowChevron_sleep {
+.skin_pastelGreen {
background-image: url(spritesmith-main-3.png);
background-position: -1274px -91px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pastelRainbowChevron_sleep {
+.customize-option.skin_pastelGreen {
background-image: url(spritesmith-main-3.png);
background-position: -1299px -106px;
width: 60px;
height: 60px;
}
-.skin_pastelRainbowDiagonal {
+.skin_pastelGreen_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1274px -364px;
+ background-position: -1274px 0px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pastelRainbowDiagonal {
+.customize-option.skin_pastelGreen_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1299px -379px;
+ background-position: -1299px -15px;
width: 60px;
height: 60px;
}
-.skin_pastelRainbowDiagonal_sleep {
+.skin_pastelOrange {
background-image: url(spritesmith-main-3.png);
background-position: -1274px -273px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pastelRainbowDiagonal_sleep {
+.customize-option.skin_pastelOrange {
background-image: url(spritesmith-main-3.png);
background-position: -1299px -288px;
width: 60px;
height: 60px;
}
-.skin_pastelYellow {
+.skin_pastelOrange_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1274px -546px;
+ background-position: -1274px -182px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pastelYellow {
+.customize-option.skin_pastelOrange_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1299px -561px;
+ background-position: -1299px -197px;
width: 60px;
height: 60px;
}
-.skin_pastelYellow_sleep {
+.skin_pastelPink {
background-image: url(spritesmith-main-3.png);
background-position: -1274px -455px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pastelYellow_sleep {
+.customize-option.skin_pastelPink {
background-image: url(spritesmith-main-3.png);
background-position: -1299px -470px;
width: 60px;
height: 60px;
}
-.skin_pig {
+.skin_pastelPink_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1274px -728px;
+ background-position: -1274px -364px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pig {
+.customize-option.skin_pastelPink_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1299px -743px;
+ background-position: -1299px -379px;
width: 60px;
height: 60px;
}
-.skin_pig_sleep {
+.skin_pastelPurple {
background-image: url(spritesmith-main-3.png);
background-position: -1274px -637px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pig_sleep {
+.customize-option.skin_pastelPurple {
background-image: url(spritesmith-main-3.png);
background-position: -1299px -652px;
width: 60px;
height: 60px;
}
-.skin_pumpkin {
+.skin_pastelPurple_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1274px -910px;
+ background-position: -1274px -546px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pumpkin {
+.customize-option.skin_pastelPurple_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1299px -925px;
+ background-position: -1299px -561px;
width: 60px;
height: 60px;
}
-.skin_pumpkin2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -1274px -1092px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_pumpkin2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -1299px -1107px;
- width: 60px;
- height: 60px;
-}
-.skin_pumpkin2_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1274px -1001px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_pumpkin2_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1299px -1016px;
- width: 60px;
- height: 60px;
-}
-.skin_pumpkin_sleep {
+.skin_pastelRainbowChevron {
background-image: url(spritesmith-main-3.png);
background-position: -1274px -819px;
width: 90px;
height: 90px;
}
-.customize-option.skin_pumpkin_sleep {
+.customize-option.skin_pastelRainbowChevron {
background-image: url(spritesmith-main-3.png);
background-position: -1299px -834px;
width: 60px;
height: 60px;
}
-.skin_rainbow {
+.skin_pastelRainbowChevron_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: 0px -1274px;
+ background-position: -1274px -728px;
width: 90px;
height: 90px;
}
-.customize-option.skin_rainbow {
+.customize-option.skin_pastelRainbowChevron_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -25px -1289px;
+ background-position: -1299px -743px;
width: 60px;
height: 60px;
}
-.skin_rainbow_sleep {
+.skin_pastelRainbowDiagonal {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1274px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_pastelRainbowDiagonal {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1299px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_pastelRainbowDiagonal_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1274px -910px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_pastelRainbowDiagonal_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1299px -925px;
+ width: 60px;
+ height: 60px;
+}
+.skin_pastelYellow {
background-image: url(spritesmith-main-3.png);
background-position: -1274px -1183px;
width: 90px;
height: 90px;
}
-.customize-option.skin_rainbow_sleep {
+.customize-option.skin_pastelYellow {
background-image: url(spritesmith-main-3.png);
background-position: -1299px -1198px;
width: 60px;
height: 60px;
}
-.skin_reptile {
+.skin_pastelYellow_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -182px -1274px;
+ background-position: -1274px -1092px;
width: 90px;
height: 90px;
}
-.customize-option.skin_reptile {
+.customize-option.skin_pastelYellow_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -207px -1289px;
+ background-position: -1299px -1107px;
width: 60px;
height: 60px;
}
-.skin_reptile_sleep {
+.skin_pig {
background-image: url(spritesmith-main-3.png);
background-position: -91px -1274px;
width: 90px;
height: 90px;
}
-.customize-option.skin_reptile_sleep {
+.customize-option.skin_pig {
background-image: url(spritesmith-main-3.png);
background-position: -116px -1289px;
width: 60px;
height: 60px;
}
-.skin_shadow {
+.skin_pig_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -364px -1274px;
+ background-position: 0px -1274px;
width: 90px;
height: 90px;
}
-.customize-option.skin_shadow {
+.customize-option.skin_pig_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -389px -1289px;
+ background-position: -25px -1289px;
width: 60px;
height: 60px;
}
-.skin_shadow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_shadow2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -571px -1289px;
- width: 60px;
- height: 60px;
-}
-.skin_shadow2_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_shadow2_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -480px -1289px;
- width: 60px;
- height: 60px;
-}
-.skin_shadow_sleep {
+.skin_pumpkin {
background-image: url(spritesmith-main-3.png);
background-position: -273px -1274px;
width: 90px;
height: 90px;
}
-.customize-option.skin_shadow_sleep {
+.customize-option.skin_pumpkin {
background-image: url(spritesmith-main-3.png);
background-position: -298px -1289px;
width: 60px;
height: 60px;
}
-.skin_shark {
+.skin_pumpkin2 {
background-image: url(spritesmith-main-3.png);
- background-position: -728px -1274px;
+ background-position: -455px -1274px;
width: 90px;
height: 90px;
}
-.customize-option.skin_shark {
+.customize-option.skin_pumpkin2 {
background-image: url(spritesmith-main-3.png);
- background-position: -753px -1289px;
+ background-position: -480px -1289px;
width: 60px;
height: 60px;
}
-.skin_shark_sleep {
+.skin_pumpkin2_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_pumpkin2_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -389px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.skin_pumpkin_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_pumpkin_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -207px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.skin_rainbow {
background-image: url(spritesmith-main-3.png);
background-position: -637px -1274px;
width: 90px;
height: 90px;
}
-.customize-option.skin_shark_sleep {
+.customize-option.skin_rainbow {
background-image: url(spritesmith-main-3.png);
background-position: -662px -1289px;
width: 60px;
height: 60px;
}
-.skin_skeleton {
+.skin_rainbow_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -910px -1274px;
+ background-position: -546px -1274px;
width: 90px;
height: 90px;
}
-.customize-option.skin_skeleton {
+.customize-option.skin_rainbow_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -935px -1289px;
+ background-position: -571px -1289px;
width: 60px;
height: 60px;
}
-.skin_skeleton2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_skeleton2 {
- background-image: url(spritesmith-main-3.png);
- background-position: -1117px -1289px;
- width: 60px;
- height: 60px;
-}
-.skin_skeleton2_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -1274px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_skeleton2_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1026px -1289px;
- width: 60px;
- height: 60px;
-}
-.skin_skeleton_sleep {
+.skin_reptile {
background-image: url(spritesmith-main-3.png);
background-position: -819px -1274px;
width: 90px;
height: 90px;
}
-.customize-option.skin_skeleton_sleep {
+.customize-option.skin_reptile {
background-image: url(spritesmith-main-3.png);
background-position: -844px -1289px;
width: 60px;
height: 60px;
}
-.skin_tiger {
+.skin_reptile_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1274px -1274px;
+ background-position: -728px -1274px;
width: 90px;
height: 90px;
}
-.customize-option.skin_tiger {
+.customize-option.skin_reptile_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1299px -1289px;
+ background-position: -753px -1289px;
width: 60px;
height: 60px;
}
-.skin_tiger_sleep {
+.skin_shadow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_shadow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1026px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.skin_shadow2 {
background-image: url(spritesmith-main-3.png);
background-position: -1183px -1274px;
width: 90px;
height: 90px;
}
-.customize-option.skin_tiger_sleep {
+.customize-option.skin_shadow2 {
background-image: url(spritesmith-main-3.png);
background-position: -1208px -1289px;
width: 60px;
height: 60px;
}
-.skin_transparent {
+.skin_shadow2_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1365px -91px;
+ background-position: -1092px -1274px;
width: 90px;
height: 90px;
}
-.customize-option.skin_transparent {
+.customize-option.skin_shadow2_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1390px -106px;
+ background-position: -1117px -1289px;
width: 60px;
height: 60px;
}
-.skin_transparent_sleep {
+.skin_shadow_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_shadow_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -935px -1289px;
+ width: 60px;
+ height: 60px;
+}
+.skin_shark {
background-image: url(spritesmith-main-3.png);
background-position: -1365px 0px;
width: 90px;
height: 90px;
}
-.customize-option.skin_transparent_sleep {
+.customize-option.skin_shark {
background-image: url(spritesmith-main-3.png);
background-position: -1390px -15px;
width: 60px;
height: 60px;
}
-.skin_tropicalwater {
+.skin_shark_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1365px -273px;
+ background-position: -1274px -1274px;
width: 90px;
height: 90px;
}
-.customize-option.skin_tropicalwater {
+.customize-option.skin_shark_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1390px -288px;
+ background-position: -1299px -1289px;
width: 60px;
height: 60px;
}
-.skin_tropicalwater_sleep {
+.skin_skeleton {
background-image: url(spritesmith-main-3.png);
background-position: -1365px -182px;
width: 90px;
height: 90px;
}
-.customize-option.skin_tropicalwater_sleep {
+.customize-option.skin_skeleton {
background-image: url(spritesmith-main-3.png);
background-position: -1390px -197px;
width: 60px;
height: 60px;
}
-.skin_wolf {
- background-image: url(spritesmith-main-3.png);
- background-position: -1365px -455px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_wolf {
- background-image: url(spritesmith-main-3.png);
- background-position: -1390px -470px;
- width: 60px;
- height: 60px;
-}
-.skin_wolf_sleep {
+.skin_skeleton2 {
background-image: url(spritesmith-main-3.png);
background-position: -1365px -364px;
width: 90px;
height: 90px;
}
-.customize-option.skin_wolf_sleep {
+.customize-option.skin_skeleton2 {
background-image: url(spritesmith-main-3.png);
background-position: -1390px -379px;
width: 60px;
height: 60px;
}
-.skin_zombie {
+.skin_skeleton2_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1365px -637px;
+ background-position: -1365px -273px;
width: 90px;
height: 90px;
}
-.customize-option.skin_zombie {
+.customize-option.skin_skeleton2_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1390px -652px;
+ background-position: -1390px -288px;
width: 60px;
height: 60px;
}
-.skin_zombie2 {
+.skin_skeleton_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1365px -819px;
+ background-position: -1365px -91px;
width: 90px;
height: 90px;
}
-.customize-option.skin_zombie2 {
+.customize-option.skin_skeleton_sleep {
background-image: url(spritesmith-main-3.png);
- background-position: -1390px -834px;
+ background-position: -1390px -106px;
width: 60px;
height: 60px;
}
-.skin_zombie2_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1365px -728px;
- width: 90px;
- height: 90px;
-}
-.customize-option.skin_zombie2_sleep {
- background-image: url(spritesmith-main-3.png);
- background-position: -1390px -743px;
- width: 60px;
- height: 60px;
-}
-.skin_zombie_sleep {
+.skin_tiger {
background-image: url(spritesmith-main-3.png);
background-position: -1365px -546px;
width: 90px;
height: 90px;
}
-.customize-option.skin_zombie_sleep {
+.customize-option.skin_tiger {
background-image: url(spritesmith-main-3.png);
background-position: -1390px -561px;
width: 60px;
height: 60px;
}
-.broad_armor_armoire_barristerRobes {
+.skin_tiger_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1365px -455px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_tiger_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1390px -470px;
+ width: 60px;
+ height: 60px;
+}
+.skin_transparent {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1365px -728px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_transparent {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1390px -743px;
+ width: 60px;
+ height: 60px;
+}
+.skin_transparent_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1365px -637px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_transparent_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1390px -652px;
+ width: 60px;
+ height: 60px;
+}
+.skin_tropicalwater {
background-image: url(spritesmith-main-3.png);
background-position: -1365px -910px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_basicArcherArmor {
+.customize-option.skin_tropicalwater {
background-image: url(spritesmith-main-3.png);
- background-position: -1365px -1001px;
+ background-position: -1390px -925px;
+ width: 60px;
+ height: 60px;
+}
+.skin_tropicalwater_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1365px -819px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_cannoneerRags {
+.customize-option.skin_tropicalwater_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1390px -834px;
+ width: 60px;
+ height: 60px;
+}
+.skin_wolf {
background-image: url(spritesmith-main-3.png);
background-position: -1365px -1092px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_crystalCrescentRobes {
+.customize-option.skin_wolf {
background-image: url(spritesmith-main-3.png);
- background-position: -1365px -1183px;
+ background-position: -1390px -1107px;
+ width: 60px;
+ height: 60px;
+}
+.skin_wolf_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1365px -1001px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_dragonTamerArmor {
+.customize-option.skin_wolf_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1390px -1016px;
+ width: 60px;
+ height: 60px;
+}
+.skin_zombie {
background-image: url(spritesmith-main-3.png);
background-position: -1365px -1274px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_gladiatorArmor {
+.customize-option.skin_zombie {
background-image: url(spritesmith-main-3.png);
- background-position: 0px -1365px;
- width: 90px;
- height: 90px;
+ background-position: -1390px -1289px;
+ width: 60px;
+ height: 60px;
}
-.broad_armor_armoire_goldenToga {
+.skin_zombie2 {
background-image: url(spritesmith-main-3.png);
background-position: -91px -1365px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_graduateRobe {
+.customize-option.skin_zombie2 {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -116px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.skin_zombie2_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_zombie2_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -25px -1380px;
+ width: 60px;
+ height: 60px;
+}
+.skin_zombie_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1365px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.customize-option.skin_zombie_sleep {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1390px -1198px;
+ width: 60px;
+ height: 60px;
+}
+.broad_armor_armoire_barristerRobes {
background-image: url(spritesmith-main-3.png);
background-position: -182px -1365px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_hornedIronArmor {
+.broad_armor_armoire_basicArcherArmor {
background-image: url(spritesmith-main-3.png);
background-position: -273px -1365px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_jesterCostume {
+.broad_armor_armoire_cannoneerRags {
background-image: url(spritesmith-main-3.png);
background-position: -364px -1365px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_lunarArmor {
+.broad_armor_armoire_crystalCrescentRobes {
background-image: url(spritesmith-main-3.png);
background-position: -455px -1365px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_minerOveralls {
+.broad_armor_armoire_dragonTamerArmor {
background-image: url(spritesmith-main-3.png);
background-position: -546px -1365px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_plagueDoctorOvercoat {
+.broad_armor_armoire_falconerArmor {
background-image: url(spritesmith-main-3.png);
background-position: -637px -1365px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_rancherRobes {
+.broad_armor_armoire_gladiatorArmor {
background-image: url(spritesmith-main-3.png);
background-position: -728px -1365px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_royalRobes {
+.broad_armor_armoire_goldenToga {
background-image: url(spritesmith-main-3.png);
background-position: -819px -1365px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_shepherdRobes {
+.broad_armor_armoire_graduateRobe {
background-image: url(spritesmith-main-3.png);
background-position: -910px -1365px;
width: 90px;
height: 90px;
}
-.broad_armor_armoire_stripedSwimsuit {
+.broad_armor_armoire_hornedIronArmor {
background-image: url(spritesmith-main-3.png);
background-position: -1001px -1365px;
width: 90px;
height: 90px;
}
-.eyewear_armoire_plagueDoctorMask {
+.broad_armor_armoire_jesterCostume {
background-image: url(spritesmith-main-3.png);
background-position: -1092px -1365px;
width: 90px;
height: 90px;
}
-.headAccessory_armoire_comicalArrow {
- background-image: url(spritesmith-main-3.png);
- background-position: -546px -1456px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_barristerWig {
+.broad_armor_armoire_lunarArmor {
background-image: url(spritesmith-main-3.png);
background-position: -1183px -1365px;
width: 90px;
height: 90px;
}
-.head_armoire_basicArcherCap {
+.broad_armor_armoire_minerOveralls {
background-image: url(spritesmith-main-3.png);
background-position: -1274px -1365px;
width: 90px;
height: 90px;
}
-.head_armoire_blackCat {
+.broad_armor_armoire_plagueDoctorOvercoat {
background-image: url(spritesmith-main-3.png);
background-position: -1365px -1365px;
width: 90px;
height: 90px;
}
-.head_armoire_blueFloppyHat {
+.broad_armor_armoire_rancherRobes {
background-image: url(spritesmith-main-3.png);
background-position: -1456px 0px;
width: 90px;
height: 90px;
}
-.head_armoire_blueHairbow {
+.broad_armor_armoire_royalRobes {
background-image: url(spritesmith-main-3.png);
background-position: -1456px -91px;
width: 90px;
height: 90px;
}
-.head_armoire_cannoneerBandanna {
+.broad_armor_armoire_shepherdRobes {
background-image: url(spritesmith-main-3.png);
background-position: -1456px -182px;
width: 90px;
height: 90px;
}
-.head_armoire_crystalCrescentHat {
+.broad_armor_armoire_stripedSwimsuit {
background-image: url(spritesmith-main-3.png);
background-position: -1456px -273px;
width: 90px;
height: 90px;
}
-.head_armoire_dragonTamerHelm {
+.eyewear_armoire_plagueDoctorMask {
background-image: url(spritesmith-main-3.png);
background-position: -1456px -364px;
width: 90px;
height: 90px;
}
-.head_armoire_gladiatorHelm {
- background-image: url(spritesmith-main-3.png);
- background-position: -1456px -455px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_goldenLaurels {
- background-image: url(spritesmith-main-3.png);
- background-position: -1456px -546px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_graduateCap {
- background-image: url(spritesmith-main-3.png);
- background-position: -1456px -637px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_greenFloppyHat {
- background-image: url(spritesmith-main-3.png);
- background-position: -1456px -728px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_hornedIronHelm {
- background-image: url(spritesmith-main-3.png);
- background-position: -1456px -819px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_jesterCap {
- background-image: url(spritesmith-main-3.png);
- background-position: -1456px -910px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_lunarCrown {
- background-image: url(spritesmith-main-3.png);
- background-position: -1456px -1001px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_minerHelmet {
- background-image: url(spritesmith-main-3.png);
- background-position: -1456px -1092px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_orangeCat {
- background-image: url(spritesmith-main-3.png);
- background-position: -1456px -1183px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_plagueDoctorHat {
- background-image: url(spritesmith-main-3.png);
- background-position: -1456px -1274px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_rancherHat {
- background-image: url(spritesmith-main-3.png);
- background-position: -1456px -1365px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_redFloppyHat {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -1456px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_redHairbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -1456px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_royalCrown {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -1456px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_shepherdHeaddress {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -1456px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_violetFloppyHat {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -1456px;
- width: 90px;
- height: 90px;
-}
-.head_armoire_yellowHairbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -1456px;
- width: 90px;
- height: 90px;
-}
-.shield_armoire_dragonTamerShield {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -1456px;
- width: 90px;
- height: 90px;
-}
-.shield_armoire_floralBouquet {
- background-image: url(spritesmith-main-3.png);
- background-position: -728px -1456px;
- width: 90px;
- height: 90px;
-}
-.shield_armoire_gladiatorShield {
- background-image: url(spritesmith-main-3.png);
- background-position: -819px -1456px;
- width: 90px;
- height: 90px;
-}
-.shield_armoire_midnightShield {
- background-image: url(spritesmith-main-3.png);
- background-position: -910px -1456px;
- width: 90px;
- height: 90px;
-}
-.shield_armoire_mysticLamp {
- background-image: url(spritesmith-main-3.png);
- background-position: -1001px -1456px;
- width: 90px;
- height: 90px;
-}
-.shield_armoire_royalCane {
- background-image: url(spritesmith-main-3.png);
- background-position: -1092px -1456px;
- width: 90px;
- height: 90px;
-}
-.shield_armoire_sandyBucket {
- background-image: url(spritesmith-main-3.png);
- background-position: -1183px -1456px;
- width: 90px;
- height: 90px;
-}
-.shop_armor_armoire_barristerRobes {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -779px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_basicArcherArmor {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -738px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_cannoneerRags {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -697px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_crystalCrescentRobes {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -656px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_dragonTamerArmor {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -615px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_gladiatorArmor {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -574px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_goldenToga {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -533px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_graduateRobe {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -492px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_hornedIronArmor {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -451px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_jesterCostume {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -410px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_lunarArmor {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -369px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_minerOveralls {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -328px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_plagueDoctorOvercoat {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -287px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_rancherRobes {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -246px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_royalRobes {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -205px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_shepherdRobes {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -164px;
- width: 40px;
- height: 40px;
-}
-.shop_armor_armoire_stripedSwimsuit {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -123px;
- width: 40px;
- height: 40px;
-}
-.shop_eyewear_armoire_plagueDoctorMask {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -82px;
- width: 40px;
- height: 40px;
-}
-.shop_headAccessory_armoire_comicalArrow {
- background-image: url(spritesmith-main-3.png);
- background-position: -1293px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_barristerWig {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -41px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_basicArcherCap {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px 0px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_blackCat {
- background-image: url(spritesmith-main-3.png);
- background-position: -1580px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_blueFloppyHat {
- background-image: url(spritesmith-main-3.png);
- background-position: -1539px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_blueHairbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -1498px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_cannoneerBandanna {
- background-image: url(spritesmith-main-3.png);
- background-position: -1457px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_crystalCrescentHat {
- background-image: url(spritesmith-main-3.png);
- background-position: -1416px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_dragonTamerHelm {
- background-image: url(spritesmith-main-3.png);
- background-position: -1375px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_gladiatorHelm {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_goldenLaurels {
- background-image: url(spritesmith-main-3.png);
- background-position: -1047px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_graduateCap {
- background-image: url(spritesmith-main-3.png);
- background-position: -678px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_greenFloppyHat {
- background-image: url(spritesmith-main-3.png);
- background-position: -719px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_hornedIronHelm {
- background-image: url(spritesmith-main-3.png);
- background-position: -760px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_jesterCap {
- background-image: url(spritesmith-main-3.png);
- background-position: -801px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_lunarCrown {
- background-image: url(spritesmith-main-3.png);
- background-position: -842px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_minerHelmet {
- background-image: url(spritesmith-main-3.png);
- background-position: -883px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_orangeCat {
- background-image: url(spritesmith-main-3.png);
- background-position: -924px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_plagueDoctorHat {
- background-image: url(spritesmith-main-3.png);
- background-position: -965px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_rancherHat {
- background-image: url(spritesmith-main-3.png);
- background-position: -1006px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_redFloppyHat {
- background-image: url(spritesmith-main-3.png);
- background-position: -1047px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_redHairbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -1088px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_royalCrown {
- background-image: url(spritesmith-main-3.png);
- background-position: -1129px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_shepherdHeaddress {
- background-image: url(spritesmith-main-3.png);
- background-position: -1170px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_violetFloppyHat {
- background-image: url(spritesmith-main-3.png);
- background-position: -1211px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_head_armoire_yellowHairbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -1252px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_shield_armoire_dragonTamerShield {
- background-image: url(spritesmith-main-3.png);
- background-position: -1334px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_shield_armoire_floralBouquet {
- background-image: url(spritesmith-main-3.png);
- background-position: -1375px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_shield_armoire_gladiatorShield {
- background-image: url(spritesmith-main-3.png);
- background-position: -1416px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_shield_armoire_midnightShield {
- background-image: url(spritesmith-main-3.png);
- background-position: -1457px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_shield_armoire_mysticLamp {
- background-image: url(spritesmith-main-3.png);
- background-position: -1498px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_shield_armoire_royalCane {
- background-image: url(spritesmith-main-3.png);
- background-position: -1539px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_shield_armoire_sandyBucket {
- background-image: url(spritesmith-main-3.png);
- background-position: -1580px -1547px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_barristerGavel {
- background-image: url(spritesmith-main-3.png);
- background-position: -637px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_basicCrossbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -678px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_basicLongbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -719px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_batWand {
- background-image: url(spritesmith-main-3.png);
- background-position: -760px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_blueLongbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -801px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_cannon {
- background-image: url(spritesmith-main-3.png);
- background-position: -842px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_crystalCrescentStaff {
- background-image: url(spritesmith-main-3.png);
- background-position: -883px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_glowingSpear {
- background-image: url(spritesmith-main-3.png);
- background-position: -924px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_goldWingStaff {
- background-image: url(spritesmith-main-3.png);
- background-position: -965px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_habiticanDiploma {
- background-image: url(spritesmith-main-3.png);
- background-position: -1006px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_ironCrook {
- background-image: url(spritesmith-main-3.png);
- background-position: -1638px -820px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_jesterBaton {
- background-image: url(spritesmith-main-3.png);
- background-position: -1088px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_lunarSceptre {
- background-image: url(spritesmith-main-3.png);
- background-position: -1129px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_miningPickax {
- background-image: url(spritesmith-main-3.png);
- background-position: -1170px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_mythmakerSword {
- background-image: url(spritesmith-main-3.png);
- background-position: -1211px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_rancherLasso {
- background-image: url(spritesmith-main-3.png);
- background-position: -1252px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_sandySpade {
- background-image: url(spritesmith-main-3.png);
- background-position: -1293px -1588px;
- width: 40px;
- height: 40px;
-}
-.shop_weapon_armoire_shepherdsCrook {
- background-image: url(spritesmith-main-3.png);
- background-position: -1334px -1588px;
- width: 40px;
- height: 40px;
-}
-.slim_armor_armoire_barristerRobes {
- background-image: url(spritesmith-main-3.png);
- background-position: -455px -1547px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_basicArcherArmor {
- background-image: url(spritesmith-main-3.png);
- background-position: -364px -1547px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_cannoneerRags {
- background-image: url(spritesmith-main-3.png);
- background-position: -273px -1547px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_crystalCrescentRobes {
- background-image: url(spritesmith-main-3.png);
- background-position: -182px -1547px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_dragonTamerArmor {
- background-image: url(spritesmith-main-3.png);
- background-position: -91px -1547px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_gladiatorArmor {
- background-image: url(spritesmith-main-3.png);
- background-position: 0px -1547px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_goldenToga {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -1456px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_graduateRobe {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -1365px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_hornedIronArmor {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -1274px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_jesterCostume {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -1183px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_lunarArmor {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -1092px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_minerOveralls {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -1001px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_plagueDoctorOvercoat {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -910px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_rancherRobes {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -819px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_royalRobes {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -728px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_shepherdRobes {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -637px;
- width: 90px;
- height: 90px;
-}
-.slim_armor_armoire_stripedSwimsuit {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -546px;
- width: 90px;
- height: 90px;
-}
-.weapon_armoire_barristerGavel {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -455px;
- width: 90px;
- height: 90px;
-}
-.weapon_armoire_basicCrossbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -364px;
- width: 90px;
- height: 90px;
-}
-.weapon_armoire_basicLongbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -273px;
- width: 90px;
- height: 90px;
-}
-.weapon_armoire_batWand {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -182px;
- width: 90px;
- height: 90px;
-}
-.weapon_armoire_blueLongbow {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px -91px;
- width: 90px;
- height: 90px;
-}
-.weapon_armoire_cannon {
- background-image: url(spritesmith-main-3.png);
- background-position: -1547px 0px;
- width: 90px;
- height: 90px;
-}
-.weapon_armoire_crystalCrescentStaff {
- background-image: url(spritesmith-main-3.png);
- background-position: -1456px -1456px;
- width: 90px;
- height: 90px;
-}
-.weapon_armoire_glowingSpear {
+.headAccessory_armoire_comicalArrow {
background-image: url(spritesmith-main-3.png);
background-position: -1365px -1456px;
width: 90px;
height: 90px;
}
-.weapon_armoire_goldWingStaff {
+.head_armoire_barristerWig {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1456px -455px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_basicArcherCap {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1456px -546px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_blackCat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1456px -637px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_blueFloppyHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1456px -728px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_blueHairbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1456px -819px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_cannoneerBandanna {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1456px -910px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_crystalCrescentHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1456px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_dragonTamerHelm {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1456px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_falconerCap {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1456px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_gladiatorHelm {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1456px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_goldenLaurels {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1456px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_graduateCap {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_greenFloppyHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_hornedIronHelm {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_jesterCap {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_lunarCrown {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_minerHelmet {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_orangeCat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_plagueDoctorHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -637px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_rancherHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -728px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_redFloppyHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -819px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_redHairbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -910px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_royalCrown {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1001px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_shepherdHeaddress {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1092px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_violetFloppyHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1183px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.head_armoire_yellowHairbow {
background-image: url(spritesmith-main-3.png);
background-position: -1274px -1456px;
width: 90px;
height: 90px;
}
-.weapon_armoire_habiticanDiploma {
+.shield_armoire_dragonTamerShield {
background-image: url(spritesmith-main-3.png);
- background-position: -546px -1547px;
+ background-position: -1456px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.shield_armoire_floralBouquet {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px 0px;
+ width: 90px;
+ height: 90px;
+}
+.shield_armoire_gladiatorShield {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -91px;
+ width: 90px;
+ height: 90px;
+}
+.shield_armoire_midnightShield {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -182px;
+ width: 90px;
+ height: 90px;
+}
+.shield_armoire_mysticLamp {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -273px;
+ width: 90px;
+ height: 90px;
+}
+.shield_armoire_perchingFalcon {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -364px;
+ width: 90px;
+ height: 90px;
+}
+.shield_armoire_royalCane {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -455px;
+ width: 90px;
+ height: 90px;
+}
+.shield_armoire_sandyBucket {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -546px;
+ width: 90px;
+ height: 90px;
+}
+.shop_armor_armoire_barristerRobes {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -738px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_basicArcherArmor {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -697px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_cannoneerRags {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -656px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_crystalCrescentRobes {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -615px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_dragonTamerArmor {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -574px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_falconerArmor {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -533px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_gladiatorArmor {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -492px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_goldenToga {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -451px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_graduateRobe {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -410px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_hornedIronArmor {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -369px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_jesterCostume {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -328px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_lunarArmor {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -287px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_minerOveralls {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -246px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_plagueDoctorOvercoat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -205px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_rancherRobes {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -164px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_royalRobes {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_shepherdRobes {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -915px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_armor_armoire_stripedSwimsuit {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -587px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_eyewear_armoire_plagueDoctorMask {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -628px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_headAccessory_armoire_comicalArrow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -669px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_barristerWig {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -669px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_basicArcherCap {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -710px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_blackCat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -751px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_blueFloppyHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -792px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_blueHairbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -833px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_cannoneerBandanna {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -874px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_crystalCrescentHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -915px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_dragonTamerHelm {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -956px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_falconerCap {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -997px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_gladiatorHelm {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1038px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_goldenLaurels {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1079px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_graduateCap {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1120px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_greenFloppyHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1161px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_hornedIronHelm {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1202px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_jesterCap {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1243px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_lunarCrown {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1284px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_minerHelmet {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1325px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_orangeCat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1366px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_plagueDoctorHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1407px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_rancherHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1448px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_redFloppyHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1489px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_redHairbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1530px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_royalCrown {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1571px -1547px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_shepherdHeaddress {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -546px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_violetFloppyHat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -587px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_armoire_yellowHairbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -628px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_shield_armoire_dragonTamerShield {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -710px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_shield_armoire_floralBouquet {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -751px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_shield_armoire_gladiatorShield {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -792px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_shield_armoire_midnightShield {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -833px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_shield_armoire_mysticLamp {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -874px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_shield_armoire_perchingFalcon {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -779px;
+ width: 40px;
+ height: 40px;
+}
+.shop_shield_armoire_royalCane {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -956px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_shield_armoire_sandyBucket {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -997px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_barristerGavel {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1038px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_basicCrossbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1079px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_basicLongbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1120px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_batWand {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1161px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_blueLongbow {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1202px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_cannon {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1243px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_crystalCrescentStaff {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1284px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_glowingSpear {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1325px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_goldWingStaff {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1366px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_habiticanDiploma {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1407px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_ironCrook {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1448px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_jesterBaton {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1489px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_lunarSceptre {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1530px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_miningPickax {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1571px -1588px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_mythmakerSword {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px 0px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_rancherLasso {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -41px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_sandySpade {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -82px;
+ width: 40px;
+ height: 40px;
+}
+.shop_weapon_armoire_shepherdsCrook {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1638px -123px;
+ width: 40px;
+ height: 40px;
+}
+.slim_armor_armoire_barristerRobes {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -364px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_basicArcherArmor {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -273px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_cannoneerRags {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -182px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_crystalCrescentRobes {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -91px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_dragonTamerArmor {
+ background-image: url(spritesmith-main-3.png);
+ background-position: 0px -1547px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_falconerArmor {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -1456px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_gladiatorArmor {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -1365px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_goldenToga {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -1274px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_graduateRobe {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -1183px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_hornedIronArmor {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -1092px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_jesterCostume {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -1001px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_lunarArmor {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -910px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_minerOveralls {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -819px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_plagueDoctorOvercoat {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -728px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_rancherRobes {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -1547px -637px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_royalRobes {
+ background-image: url(spritesmith-main-3.png);
+ background-position: -455px -1547px;
width: 90px;
height: 90px;
}
diff --git a/common/dist/sprites/spritesmith-main-3.png b/common/dist/sprites/spritesmith-main-3.png
index a119e0b6fb..6350f34be7 100644
Binary files a/common/dist/sprites/spritesmith-main-3.png and b/common/dist/sprites/spritesmith-main-3.png differ
diff --git a/common/dist/sprites/spritesmith-main-4.css b/common/dist/sprites/spritesmith-main-4.css
index 92aeb24176..8614bf953a 100644
--- a/common/dist/sprites/spritesmith-main-4.css
+++ b/common/dist/sprites/spritesmith-main-4.css
@@ -1,540 +1,612 @@
+.slim_armor_armoire_shepherdRobes {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -651px -291px;
+ width: 90px;
+ height: 90px;
+}
+.slim_armor_armoire_stripedSwimsuit {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -1473px -91px;
+ width: 90px;
+ height: 90px;
+}
+.weapon_armoire_barristerGavel {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -910px -1395px;
+ width: 90px;
+ height: 90px;
+}
+.weapon_armoire_basicCrossbow {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -1001px -1395px;
+ width: 90px;
+ height: 90px;
+}
+.weapon_armoire_basicLongbow {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -1092px -1395px;
+ width: 90px;
+ height: 90px;
+}
+.weapon_armoire_batWand {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -651px -473px;
+ width: 90px;
+ height: 90px;
+}
+.weapon_armoire_blueLongbow {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -637px -849px;
+ width: 90px;
+ height: 90px;
+}
+.weapon_armoire_cannon {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -728px -849px;
+ width: 90px;
+ height: 90px;
+}
+.weapon_armoire_crystalCrescentStaff {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -1018px -91px;
+ width: 90px;
+ height: 90px;
+}
+.weapon_armoire_glowingSpear {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -1018px -182px;
+ width: 90px;
+ height: 90px;
+}
+.weapon_armoire_goldWingStaff {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -1018px -364px;
+ width: 90px;
+ height: 90px;
+}
+.weapon_armoire_habiticanDiploma {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -1018px -455px;
+ width: 90px;
+ height: 90px;
+}
.weapon_armoire_ironCrook {
background-image: url(spritesmith-main-4.png);
- background-position: -546px -1046px;
+ background-position: -1018px -819px;
width: 90px;
height: 90px;
}
.weapon_armoire_jesterBaton {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -91px;
+ background-position: 0px -940px;
width: 90px;
height: 90px;
}
.weapon_armoire_lunarSceptre {
background-image: url(spritesmith-main-4.png);
- background-position: -910px -1046px;
+ background-position: -182px -940px;
width: 90px;
height: 90px;
}
.weapon_armoire_miningPickax {
background-image: url(spritesmith-main-4.png);
- background-position: -1001px -1046px;
+ background-position: -273px -940px;
width: 90px;
height: 90px;
}
.weapon_armoire_mythmakerSword {
background-image: url(spritesmith-main-4.png);
- background-position: -1206px 0px;
+ background-position: -546px -940px;
width: 90px;
height: 90px;
}
.weapon_armoire_rancherLasso {
background-image: url(spritesmith-main-4.png);
- background-position: -1206px -91px;
+ background-position: -1109px -273px;
width: 90px;
height: 90px;
}
.weapon_armoire_sandySpade {
background-image: url(spritesmith-main-4.png);
- background-position: -1206px -455px;
+ background-position: -182px -1031px;
width: 90px;
height: 90px;
}
.weapon_armoire_shepherdsCrook {
background-image: url(spritesmith-main-4.png);
- background-position: -1206px -546px;
+ background-position: -1200px -91px;
width: 90px;
height: 90px;
}
.broad_armor_healer_1 {
background-image: url(spritesmith-main-4.png);
- background-position: -1206px -910px;
+ background-position: -1200px -182px;
width: 90px;
height: 90px;
}
.broad_armor_healer_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -1297px -728px;
+ background-position: -1200px -273px;
width: 90px;
height: 90px;
}
.broad_armor_healer_3 {
background-image: url(spritesmith-main-4.png);
- background-position: -1297px -819px;
+ background-position: -1200px -637px;
width: 90px;
height: 90px;
}
.broad_armor_healer_4 {
background-image: url(spritesmith-main-4.png);
- background-position: -1297px -1001px;
+ background-position: -1200px -728px;
width: 90px;
height: 90px;
}
.broad_armor_healer_5 {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -91px;
+ background-position: -1200px -910px;
width: 90px;
height: 90px;
}
.broad_armor_rogue_1 {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -364px;
+ background-position: -1200px -1001px;
width: 90px;
height: 90px;
}
.broad_armor_rogue_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -1092px;
+ background-position: -273px -1122px;
width: 90px;
height: 90px;
}
.broad_armor_rogue_3 {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -637px;
+ background-position: -364px -1122px;
width: 90px;
height: 90px;
}
.broad_armor_rogue_4 {
background-image: url(spritesmith-main-4.png);
- background-position: -933px 0px;
+ background-position: -455px -1213px;
width: 90px;
height: 90px;
}
.broad_armor_rogue_5 {
background-image: url(spritesmith-main-4.png);
- background-position: -933px -546px;
+ background-position: -546px -1213px;
width: 90px;
height: 90px;
}
.broad_armor_special_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -933px -637px;
+ background-position: -637px -1213px;
width: 90px;
height: 90px;
}
.broad_armor_special_finnedOceanicArmor {
background-image: url(spritesmith-main-4.png);
- background-position: -182px -864px;
+ background-position: -819px -1213px;
width: 90px;
height: 90px;
}
.broad_armor_warrior_1 {
background-image: url(spritesmith-main-4.png);
- background-position: -273px -864px;
+ background-position: -1382px -910px;
width: 90px;
height: 90px;
}
.broad_armor_warrior_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -455px -864px;
+ background-position: -1382px -1001px;
width: 90px;
height: 90px;
}
.broad_armor_warrior_3 {
background-image: url(spritesmith-main-4.png);
- background-position: -546px -864px;
+ background-position: 0px -1304px;
width: 90px;
height: 90px;
}
.broad_armor_warrior_4 {
background-image: url(spritesmith-main-4.png);
- background-position: -910px -864px;
+ background-position: -1473px -910px;
width: 90px;
height: 90px;
}
.broad_armor_warrior_5 {
background-image: url(spritesmith-main-4.png);
- background-position: -1024px 0px;
+ background-position: -1473px -1274px;
width: 90px;
height: 90px;
}
.broad_armor_wizard_1 {
background-image: url(spritesmith-main-4.png);
- background-position: -1024px -182px;
+ background-position: -182px -1395px;
width: 90px;
height: 90px;
}
.broad_armor_wizard_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -1024px -273px;
+ background-position: -273px -1395px;
width: 90px;
height: 90px;
}
.broad_armor_wizard_3 {
background-image: url(spritesmith-main-4.png);
- background-position: -1024px -546px;
+ background-position: -546px -1395px;
width: 90px;
height: 90px;
}
.broad_armor_wizard_4 {
background-image: url(spritesmith-main-4.png);
- background-position: -1115px -546px;
+ background-position: -637px -1395px;
width: 90px;
height: 90px;
}
.broad_armor_wizard_5 {
background-image: url(spritesmith-main-4.png);
- background-position: -455px -1046px;
+ background-position: -728px -1395px;
width: 90px;
height: 90px;
}
.shop_armor_healer_1 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -1025px;
+ background-position: -1655px -369px;
width: 40px;
height: 40px;
}
.shop_armor_healer_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -984px;
+ background-position: -1655px -328px;
width: 40px;
height: 40px;
}
.shop_armor_healer_3 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -943px;
+ background-position: -1655px -287px;
width: 40px;
height: 40px;
}
.shop_armor_healer_4 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -902px;
+ background-position: -1655px -246px;
width: 40px;
height: 40px;
}
.shop_armor_healer_5 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -861px;
+ background-position: -1655px -205px;
width: 40px;
height: 40px;
}
.shop_armor_rogue_1 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -820px;
+ background-position: -1655px -164px;
width: 40px;
height: 40px;
}
.shop_armor_rogue_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -779px;
+ background-position: -1655px -123px;
width: 40px;
height: 40px;
}
.shop_armor_rogue_3 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -738px;
+ background-position: -1655px -82px;
width: 40px;
height: 40px;
}
.shop_armor_rogue_4 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -697px;
+ background-position: -1655px -41px;
width: 40px;
height: 40px;
}
.shop_armor_rogue_5 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -656px;
+ background-position: -1655px 0px;
width: 40px;
height: 40px;
}
.shop_armor_special_0 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -615px;
+ background-position: -1599px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_special_1 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -574px;
+ background-position: -1558px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_special_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -533px;
+ background-position: -1517px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_special_finnedOceanicArmor {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -492px;
+ background-position: -1476px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_warrior_1 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -451px;
+ background-position: -1435px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_warrior_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -410px;
+ background-position: -1394px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_warrior_3 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -369px;
+ background-position: -1353px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_warrior_4 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -328px;
+ background-position: -1312px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_warrior_5 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -287px;
+ background-position: -1271px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_wizard_1 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -246px;
+ background-position: -1230px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_wizard_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -205px;
+ background-position: -1189px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_wizard_3 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -164px;
+ background-position: -1148px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_wizard_4 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -123px;
+ background-position: -1107px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_wizard_5 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -82px;
+ background-position: -1066px -1609px;
width: 40px;
height: 40px;
}
.slim_armor_healer_1 {
background-image: url(spritesmith-main-4.png);
- background-position: -728px -1410px;
+ background-position: -836px -273px;
width: 90px;
height: 90px;
}
.slim_armor_healer_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -1001px -1410px;
+ background-position: -836px -364px;
width: 90px;
height: 90px;
}
.slim_armor_healer_3 {
background-image: url(spritesmith-main-4.png);
- background-position: -1092px -1410px;
+ background-position: -836px -455px;
width: 90px;
height: 90px;
}
.slim_armor_healer_4 {
background-image: url(spritesmith-main-4.png);
- background-position: -1183px -1410px;
+ background-position: -836px -546px;
width: 90px;
height: 90px;
}
.slim_armor_healer_5 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -455px;
+ background-position: -836px -637px;
width: 90px;
height: 90px;
}
.slim_armor_rogue_1 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -546px;
+ background-position: 0px -758px;
width: 90px;
height: 90px;
}
.slim_armor_rogue_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -728px;
+ background-position: -91px -758px;
width: 90px;
height: 90px;
}
.slim_armor_rogue_3 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -819px;
+ background-position: -182px -758px;
width: 90px;
height: 90px;
}
.slim_armor_rogue_4 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -910px;
+ background-position: -273px -758px;
width: 90px;
height: 90px;
}
.slim_armor_rogue_5 {
background-image: url(spritesmith-main-4.png);
- background-position: -839px -546px;
+ background-position: -364px -758px;
width: 90px;
height: 90px;
}
.slim_armor_special_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -839px -637px;
+ background-position: -455px -758px;
width: 90px;
height: 90px;
}
.slim_armor_special_finnedOceanicArmor {
background-image: url(spritesmith-main-4.png);
- background-position: -748px -291px;
+ background-position: -546px -758px;
width: 90px;
height: 90px;
}
.slim_armor_warrior_1 {
background-image: url(spritesmith-main-4.png);
- background-position: -748px -382px;
+ background-position: -637px -758px;
width: 90px;
height: 90px;
}
.slim_armor_warrior_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -748px -473px;
+ background-position: -728px -758px;
width: 90px;
height: 90px;
}
.slim_armor_warrior_3 {
background-image: url(spritesmith-main-4.png);
- background-position: -748px -564px;
+ background-position: -819px -758px;
width: 90px;
height: 90px;
}
.slim_armor_warrior_4 {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -773px;
+ background-position: -927px 0px;
width: 90px;
height: 90px;
}
.slim_armor_warrior_5 {
background-image: url(spritesmith-main-4.png);
- background-position: -91px -773px;
+ background-position: -927px -91px;
width: 90px;
height: 90px;
}
.slim_armor_wizard_1 {
background-image: url(spritesmith-main-4.png);
- background-position: -182px -773px;
+ background-position: -927px -182px;
width: 90px;
height: 90px;
}
.slim_armor_wizard_2 {
background-image: url(spritesmith-main-4.png);
- background-position: -273px -773px;
+ background-position: -927px -273px;
width: 90px;
height: 90px;
}
.slim_armor_wizard_3 {
background-image: url(spritesmith-main-4.png);
- background-position: -364px -773px;
+ background-position: -927px -364px;
width: 90px;
height: 90px;
}
.slim_armor_wizard_4 {
background-image: url(spritesmith-main-4.png);
- background-position: -455px -773px;
+ background-position: -927px -455px;
width: 90px;
height: 90px;
}
.slim_armor_wizard_5 {
background-image: url(spritesmith-main-4.png);
- background-position: -546px -773px;
+ background-position: -927px -546px;
width: 90px;
height: 90px;
}
.broad_armor_special_birthday {
background-image: url(spritesmith-main-4.png);
- background-position: -637px -773px;
+ background-position: -927px -637px;
width: 90px;
height: 90px;
}
.broad_armor_special_birthday2015 {
background-image: url(spritesmith-main-4.png);
- background-position: -728px -773px;
+ background-position: -927px -728px;
width: 90px;
height: 90px;
}
.broad_armor_special_birthday2016 {
background-image: url(spritesmith-main-4.png);
- background-position: -819px -773px;
+ background-position: 0px -849px;
width: 90px;
height: 90px;
}
.shop_armor_special_birthday {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -41px;
+ background-position: -1025px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_special_birthday2015 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px 0px;
+ background-position: -984px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_special_birthday2016 {
background-image: url(spritesmith-main-4.png);
- background-position: -1599px -1583px;
+ background-position: -943px -1609px;
width: 40px;
height: 40px;
}
.slim_armor_special_birthday {
background-image: url(spritesmith-main-4.png);
- background-position: -933px -273px;
+ background-position: -364px -849px;
width: 90px;
height: 90px;
}
.slim_armor_special_birthday2015 {
background-image: url(spritesmith-main-4.png);
- background-position: -933px -364px;
+ background-position: -455px -849px;
width: 90px;
height: 90px;
}
.slim_armor_special_birthday2016 {
background-image: url(spritesmith-main-4.png);
- background-position: -933px -455px;
+ background-position: -546px -849px;
width: 90px;
height: 90px;
}
.broad_armor_special_fall2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -839px -364px;
+ background-position: -503px -470px;
width: 93px;
height: 90px;
}
.broad_armor_special_fall2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -106px -288px;
+ background-position: -318px -379px;
width: 105px;
height: 90px;
}
.broad_armor_special_fall2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -933px -728px;
+ background-position: -819px -849px;
width: 90px;
height: 90px;
}
.broad_armor_special_fall2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -864px;
+ background-position: -910px -849px;
width: 90px;
height: 90px;
}
.broad_armor_special_fallHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -91px -864px;
+ background-position: -1018px 0px;
width: 90px;
height: 90px;
}
@@ -546,43 +618,43 @@
}
.broad_armor_special_fallRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -212px -288px;
+ background-position: -194px -182px;
width: 105px;
height: 90px;
}
.broad_armor_special_fallWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -364px -864px;
+ background-position: -1018px -273px;
width: 90px;
height: 90px;
}
.head_special_fall2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -839px -273px;
+ background-position: -742px -546px;
width: 93px;
height: 90px;
}
.head_special_fall2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -318px -288px;
+ background-position: -363px 0px;
width: 105px;
height: 90px;
}
.head_special_fall2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -637px -864px;
+ background-position: -1018px -546px;
width: 90px;
height: 90px;
}
.head_special_fall2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -728px -864px;
+ background-position: -1018px -637px;
width: 90px;
height: 90px;
}
.head_special_fallHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -819px -864px;
+ background-position: -1018px -728px;
width: 90px;
height: 90px;
}
@@ -594,2059 +666,2089 @@
}
.head_special_fallRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -273px -379px;
+ background-position: -363px -197px;
width: 105px;
height: 90px;
}
.head_special_fallWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1024px -91px;
+ background-position: -91px -940px;
width: 90px;
height: 90px;
}
.shield_special_fall2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -839px 0px;
+ background-position: -188px -576px;
width: 93px;
height: 90px;
}
.shield_special_fall2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -379px -379px;
+ background-position: 0px -288px;
width: 105px;
height: 90px;
}
.shield_special_fall2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1024px -364px;
+ background-position: -364px -940px;
width: 90px;
height: 90px;
}
.shield_special_fallHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -1024px -455px;
+ background-position: -455px -940px;
width: 90px;
height: 90px;
}
.shield_special_fallRogue {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -485px;
+ background-position: -106px -288px;
width: 105px;
height: 90px;
}
.shield_special_fallWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1024px -637px;
+ background-position: -637px -940px;
width: 90px;
height: 90px;
}
.shop_armor_special_fall2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -1558px -1583px;
+ background-position: -902px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_special_fall2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -1517px -1583px;
+ background-position: -861px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_special_fall2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1476px -1583px;
+ background-position: -820px -1609px;
width: 40px;
height: 40px;
}
.shop_armor_special_fall2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1435px -1583px;
+ background-position: -82px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_fallHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -1394px -1583px;
+ background-position: -41px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_fallMage {
background-image: url(spritesmith-main-4.png);
- background-position: -1353px -1583px;
+ background-position: 0px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_fallRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1312px -1583px;
+ background-position: -1599px -1527px;
width: 40px;
height: 40px;
}
.shop_armor_special_fallWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1271px -1583px;
+ background-position: -469px -318px;
width: 40px;
height: 40px;
}
.shop_head_special_fall2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -1230px -1583px;
+ background-position: -1517px -1527px;
width: 40px;
height: 40px;
}
.shop_head_special_fall2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -1189px -1583px;
+ background-position: -1476px -1527px;
width: 40px;
height: 40px;
}
.shop_head_special_fall2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1148px -1583px;
+ background-position: -1435px -1527px;
width: 40px;
height: 40px;
}
.shop_head_special_fall2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1107px -1583px;
+ background-position: -1394px -1527px;
width: 40px;
height: 40px;
}
.shop_head_special_fallHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -1066px -1583px;
+ background-position: -1353px -1527px;
width: 40px;
height: 40px;
}
.shop_head_special_fallMage {
background-image: url(spritesmith-main-4.png);
- background-position: -1025px -1583px;
+ background-position: -1312px -1527px;
width: 40px;
height: 40px;
}
.shop_head_special_fallRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -984px -1583px;
+ background-position: -1271px -1527px;
width: 40px;
height: 40px;
}
.shop_head_special_fallWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -943px -1583px;
+ background-position: -1230px -1527px;
width: 40px;
height: 40px;
}
.shop_shield_special_fall2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -205px -1542px;
+ background-position: -1189px -1527px;
width: 40px;
height: 40px;
}
.shop_shield_special_fall2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -164px -1542px;
+ background-position: -1148px -1527px;
width: 40px;
height: 40px;
}
.shop_shield_special_fall2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -123px -1542px;
+ background-position: -1107px -1527px;
width: 40px;
height: 40px;
}
.shop_shield_special_fallHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -82px -1542px;
+ background-position: -1066px -1527px;
width: 40px;
height: 40px;
}
.shop_shield_special_fallRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -41px -1542px;
+ background-position: -1025px -1527px;
width: 40px;
height: 40px;
}
.shop_shield_special_fallWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -1542px;
+ background-position: -984px -1527px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fall2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -1599px -1501px;
+ background-position: -943px -1527px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fall2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -1558px -1501px;
+ background-position: -902px -1527px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fall2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1517px -1501px;
+ background-position: -861px -1527px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fall2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1476px -1501px;
+ background-position: -820px -1527px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fallHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -1435px -1501px;
+ background-position: -779px -1527px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fallMage {
background-image: url(spritesmith-main-4.png);
- background-position: -1394px -1501px;
+ background-position: -738px -1527px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fallRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1353px -1501px;
+ background-position: -697px -1527px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fallWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1312px -1501px;
+ background-position: -656px -1527px;
width: 40px;
height: 40px;
}
.slim_armor_special_fall2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -564px -682px;
+ background-position: -94px -576px;
width: 93px;
height: 90px;
}
.slim_armor_special_fall2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -106px -485px;
+ background-position: -318px -288px;
width: 105px;
height: 90px;
}
.slim_armor_special_fall2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -637px -1046px;
+ background-position: -1200px -364px;
width: 90px;
height: 90px;
}
.slim_armor_special_fall2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -728px -1046px;
+ background-position: -1200px -455px;
width: 90px;
height: 90px;
}
.slim_armor_special_fallHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -819px -1046px;
+ background-position: -1200px -546px;
width: 90px;
height: 90px;
}
.slim_armor_special_fallMage {
background-image: url(spritesmith-main-4.png);
- background-position: 0px 0px;
+ background-position: -121px -91px;
width: 120px;
height: 90px;
}
.slim_armor_special_fallRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -212px -485px;
+ background-position: 0px -379px;
width: 105px;
height: 90px;
}
.slim_armor_special_fallWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1092px -1046px;
+ background-position: -1200px -819px;
width: 90px;
height: 90px;
}
.weapon_special_fall2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -594px -576px;
+ background-position: 0px -576px;
width: 93px;
height: 90px;
}
.weapon_special_fall2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -318px -485px;
+ background-position: -106px -379px;
width: 105px;
height: 90px;
}
.weapon_special_fall2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1206px -182px;
+ background-position: 0px -1122px;
width: 90px;
height: 90px;
}
.weapon_special_fall2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1206px -273px;
+ background-position: -91px -1122px;
width: 90px;
height: 90px;
}
.weapon_special_fallHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -1206px -364px;
+ background-position: -182px -1122px;
width: 90px;
height: 90px;
}
.weapon_special_fallMage {
background-image: url(spritesmith-main-4.png);
- background-position: -121px -91px;
+ background-position: 0px 0px;
width: 120px;
height: 90px;
}
.weapon_special_fallRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -424px -485px;
+ background-position: -212px -379px;
width: 105px;
height: 90px;
}
.weapon_special_fallWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1206px -637px;
+ background-position: -455px -1122px;
width: 90px;
height: 90px;
}
.broad_armor_special_gaymerx {
background-image: url(spritesmith-main-4.png);
- background-position: -1206px -728px;
+ background-position: -546px -1122px;
width: 90px;
height: 90px;
}
.head_special_gaymerx {
background-image: url(spritesmith-main-4.png);
- background-position: -1206px -819px;
+ background-position: -637px -1122px;
width: 90px;
height: 90px;
}
.shop_armor_special_gaymerx {
background-image: url(spritesmith-main-4.png);
- background-position: -1271px -1501px;
+ background-position: -615px -1527px;
width: 40px;
height: 40px;
}
.shop_head_special_gaymerx {
background-image: url(spritesmith-main-4.png);
- background-position: -1230px -1501px;
+ background-position: -574px -1527px;
width: 40px;
height: 40px;
}
.slim_armor_special_gaymerx {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -1137px;
+ background-position: -910px -1122px;
width: 90px;
height: 90px;
}
.back_mystery_201402 {
background-image: url(spritesmith-main-4.png);
- background-position: -91px -1137px;
+ background-position: -1001px -1122px;
width: 90px;
height: 90px;
}
.broad_armor_mystery_201402 {
background-image: url(spritesmith-main-4.png);
- background-position: -182px -1137px;
+ background-position: -1092px -1122px;
width: 90px;
height: 90px;
}
.head_mystery_201402 {
background-image: url(spritesmith-main-4.png);
- background-position: -273px -1137px;
+ background-position: -1183px -1122px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201402 {
background-image: url(spritesmith-main-4.png);
- background-position: -1189px -1501px;
+ background-position: -533px -1527px;
width: 40px;
height: 40px;
}
.shop_back_mystery_201402 {
background-image: url(spritesmith-main-4.png);
- background-position: -1148px -1501px;
+ background-position: -492px -1527px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201402 {
background-image: url(spritesmith-main-4.png);
- background-position: -1107px -1501px;
+ background-position: -451px -1527px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201402 {
background-image: url(spritesmith-main-4.png);
- background-position: -637px -1137px;
+ background-position: -1291px -273px;
width: 90px;
height: 90px;
}
.broad_armor_mystery_201403 {
background-image: url(spritesmith-main-4.png);
- background-position: -728px -1137px;
+ background-position: -1291px -364px;
width: 90px;
height: 90px;
}
.headAccessory_mystery_201403 {
background-image: url(spritesmith-main-4.png);
- background-position: -819px -1137px;
+ background-position: -1291px -455px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201403 {
background-image: url(spritesmith-main-4.png);
- background-position: -1066px -1501px;
+ background-position: -410px -1527px;
width: 40px;
height: 40px;
}
.shop_headAccessory_mystery_201403 {
background-image: url(spritesmith-main-4.png);
- background-position: -1025px -1501px;
+ background-position: -369px -1527px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201403 {
background-image: url(spritesmith-main-4.png);
- background-position: -1092px -1137px;
+ background-position: -1291px -728px;
width: 90px;
height: 90px;
}
.back_mystery_201404 {
background-image: url(spritesmith-main-4.png);
- background-position: -1183px -1137px;
+ background-position: -1291px -819px;
width: 90px;
height: 90px;
}
.headAccessory_mystery_201404 {
background-image: url(spritesmith-main-4.png);
- background-position: -1297px 0px;
+ background-position: -1291px -910px;
width: 90px;
height: 90px;
}
.shop_back_mystery_201404 {
background-image: url(spritesmith-main-4.png);
- background-position: -984px -1501px;
+ background-position: -328px -1527px;
width: 40px;
height: 40px;
}
.shop_headAccessory_mystery_201404 {
background-image: url(spritesmith-main-4.png);
- background-position: -943px -1501px;
+ background-position: -287px -1527px;
width: 40px;
height: 40px;
}
.broad_armor_mystery_201405 {
background-image: url(spritesmith-main-4.png);
- background-position: -1297px -273px;
+ background-position: 0px -1213px;
width: 90px;
height: 90px;
}
.head_mystery_201405 {
background-image: url(spritesmith-main-4.png);
- background-position: -1297px -364px;
+ background-position: -91px -1213px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201405 {
background-image: url(spritesmith-main-4.png);
- background-position: -902px -1501px;
+ background-position: -246px -1527px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201405 {
background-image: url(spritesmith-main-4.png);
- background-position: -861px -1501px;
+ background-position: -205px -1527px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201405 {
background-image: url(spritesmith-main-4.png);
- background-position: -1297px -637px;
+ background-position: -364px -1213px;
width: 90px;
height: 90px;
}
.broad_armor_mystery_201406 {
background-image: url(spritesmith-main-4.png);
- background-position: -748px -194px;
+ background-position: -651px -97px;
width: 90px;
height: 96px;
}
.head_mystery_201406 {
background-image: url(spritesmith-main-4.png);
- background-position: -748px -97px;
+ background-position: -651px -194px;
width: 90px;
height: 96px;
}
.shop_armor_mystery_201406 {
background-image: url(spritesmith-main-4.png);
- background-position: -820px -1501px;
+ background-position: -164px -1527px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201406 {
background-image: url(spritesmith-main-4.png);
- background-position: -779px -1501px;
+ background-position: -123px -1527px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201406 {
background-image: url(spritesmith-main-4.png);
- background-position: -748px 0px;
+ background-position: -651px 0px;
width: 90px;
height: 96px;
}
.broad_armor_mystery_201407 {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -1228px;
+ background-position: -910px -1213px;
width: 90px;
height: 90px;
}
.head_mystery_201407 {
background-image: url(spritesmith-main-4.png);
- background-position: -91px -1228px;
+ background-position: -1001px -1213px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201407 {
background-image: url(spritesmith-main-4.png);
- background-position: -738px -1501px;
+ background-position: -82px -1527px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201407 {
background-image: url(spritesmith-main-4.png);
- background-position: -697px -1501px;
+ background-position: -41px -1527px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201407 {
background-image: url(spritesmith-main-4.png);
- background-position: -364px -1228px;
+ background-position: -1274px -1213px;
width: 90px;
height: 90px;
}
.broad_armor_mystery_201408 {
background-image: url(spritesmith-main-4.png);
- background-position: -455px -1228px;
+ background-position: -1382px 0px;
width: 90px;
height: 90px;
}
.head_mystery_201408 {
background-image: url(spritesmith-main-4.png);
- background-position: -546px -1228px;
+ background-position: -1382px -91px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201408 {
background-image: url(spritesmith-main-4.png);
- background-position: -656px -1501px;
+ background-position: 0px -1527px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201408 {
background-image: url(spritesmith-main-4.png);
- background-position: -615px -1501px;
+ background-position: -1599px -1486px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201408 {
background-image: url(spritesmith-main-4.png);
- background-position: -819px -1228px;
+ background-position: -1382px -364px;
width: 90px;
height: 90px;
}
.broad_armor_mystery_201409 {
background-image: url(spritesmith-main-4.png);
- background-position: -910px -1228px;
+ background-position: -1382px -455px;
width: 90px;
height: 90px;
}
.headAccessory_mystery_201409 {
background-image: url(spritesmith-main-4.png);
- background-position: -1001px -1228px;
+ background-position: -1382px -546px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201409 {
background-image: url(spritesmith-main-4.png);
- background-position: -574px -1501px;
+ background-position: -1558px -1486px;
width: 40px;
height: 40px;
}
.shop_headAccessory_mystery_201409 {
background-image: url(spritesmith-main-4.png);
- background-position: -533px -1501px;
+ background-position: -1353px -1486px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201409 {
background-image: url(spritesmith-main-4.png);
- background-position: -1274px -1228px;
+ background-position: -1382px -819px;
width: 90px;
height: 90px;
}
.back_mystery_201410 {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -682px;
+ background-position: -282px -576px;
width: 93px;
height: 90px;
}
.broad_armor_mystery_201410 {
background-image: url(spritesmith-main-4.png);
- background-position: -470px -682px;
+ background-position: -376px -576px;
width: 93px;
height: 90px;
}
.shop_armor_mystery_201410 {
background-image: url(spritesmith-main-4.png);
- background-position: -492px -1501px;
+ background-position: -1312px -1486px;
width: 40px;
height: 40px;
}
.shop_back_mystery_201410 {
background-image: url(spritesmith-main-4.png);
- background-position: -451px -1501px;
+ background-position: -1271px -1486px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201410 {
background-image: url(spritesmith-main-4.png);
- background-position: -94px -682px;
+ background-position: -742px -364px;
width: 93px;
height: 90px;
}
.head_mystery_201411 {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -455px;
+ background-position: -91px -1304px;
width: 90px;
height: 90px;
}
.shop_head_mystery_201411 {
background-image: url(spritesmith-main-4.png);
- background-position: -410px -1501px;
+ background-position: -1230px -1486px;
width: 40px;
height: 40px;
}
.shop_weapon_mystery_201411 {
background-image: url(spritesmith-main-4.png);
- background-position: -369px -1501px;
+ background-position: -1189px -1486px;
width: 40px;
height: 40px;
}
.weapon_mystery_201411 {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -728px;
+ background-position: -364px -1304px;
width: 90px;
height: 90px;
}
.broad_armor_mystery_201412 {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -819px;
+ background-position: -455px -1304px;
width: 90px;
height: 90px;
}
.head_mystery_201412 {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -910px;
+ background-position: -546px -1304px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201412 {
background-image: url(spritesmith-main-4.png);
- background-position: -328px -1501px;
+ background-position: -1148px -1486px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201412 {
background-image: url(spritesmith-main-4.png);
- background-position: -287px -1501px;
+ background-position: -943px -1486px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201412 {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -1183px;
+ background-position: -819px -1304px;
width: 90px;
height: 90px;
}
.broad_armor_mystery_201501 {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -1319px;
+ background-position: -910px -1304px;
width: 90px;
height: 90px;
}
.head_mystery_201501 {
background-image: url(spritesmith-main-4.png);
- background-position: -91px -1319px;
+ background-position: -1001px -1304px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201501 {
background-image: url(spritesmith-main-4.png);
- background-position: -246px -1501px;
+ background-position: -902px -1486px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201501 {
background-image: url(spritesmith-main-4.png);
- background-position: -205px -1501px;
+ background-position: -861px -1486px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201501 {
background-image: url(spritesmith-main-4.png);
- background-position: -364px -1319px;
+ background-position: -1274px -1304px;
width: 90px;
height: 90px;
}
.headAccessory_mystery_201502 {
background-image: url(spritesmith-main-4.png);
- background-position: -455px -1319px;
+ background-position: -1365px -1304px;
width: 90px;
height: 90px;
}
.shop_headAccessory_mystery_201502 {
background-image: url(spritesmith-main-4.png);
- background-position: -164px -1501px;
+ background-position: -820px -1486px;
width: 40px;
height: 40px;
}
.shop_weapon_mystery_201502 {
background-image: url(spritesmith-main-4.png);
- background-position: -123px -1501px;
+ background-position: -1655px -410px;
width: 40px;
height: 40px;
}
.weapon_mystery_201502 {
background-image: url(spritesmith-main-4.png);
- background-position: -728px -1319px;
+ background-position: -1473px -182px;
width: 90px;
height: 90px;
}
.broad_armor_mystery_201503 {
background-image: url(spritesmith-main-4.png);
- background-position: -819px -1319px;
+ background-position: -1473px -273px;
width: 90px;
height: 90px;
}
.eyewear_mystery_201503 {
background-image: url(spritesmith-main-4.png);
- background-position: -910px -1319px;
+ background-position: -1473px -364px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201503 {
background-image: url(spritesmith-main-4.png);
- background-position: -82px -1501px;
+ background-position: -697px -1486px;
width: 40px;
height: 40px;
}
.shop_eyewear_mystery_201503 {
background-image: url(spritesmith-main-4.png);
- background-position: -41px -1501px;
+ background-position: -656px -1486px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201503 {
background-image: url(spritesmith-main-4.png);
- background-position: -1183px -1319px;
+ background-position: -1473px -637px;
width: 90px;
height: 90px;
}
.back_mystery_201504 {
background-image: url(spritesmith-main-4.png);
- background-position: -1274px -1319px;
+ background-position: -1473px -728px;
width: 90px;
height: 90px;
}
.broad_armor_mystery_201504 {
background-image: url(spritesmith-main-4.png);
- background-position: -1365px -1319px;
+ background-position: -1473px -819px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201504 {
background-image: url(spritesmith-main-4.png);
- background-position: -752px -682px;
+ background-position: -615px -1486px;
width: 40px;
height: 40px;
}
.shop_back_mystery_201504 {
background-image: url(spritesmith-main-4.png);
- background-position: -1661px -1066px;
+ background-position: -492px -1486px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201504 {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -182px;
+ background-position: -1473px -1092px;
width: 90px;
height: 90px;
}
.head_mystery_201505 {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -273px;
+ background-position: -1473px -1183px;
width: 90px;
height: 90px;
}
.shop_head_mystery_201505 {
background-image: url(spritesmith-main-4.png);
- background-position: -688px -617px;
+ background-position: -451px -1486px;
width: 40px;
height: 40px;
}
.shop_weapon_mystery_201505 {
background-image: url(spritesmith-main-4.png);
- background-position: -688px -576px;
+ background-position: -410px -1486px;
width: 40px;
height: 40px;
}
.weapon_mystery_201505 {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -546px;
+ background-position: -91px -1395px;
width: 90px;
height: 90px;
}
.broad_armor_mystery_201506 {
background-image: url(spritesmith-main-4.png);
- background-position: -91px -576px;
+ background-position: -560px -212px;
width: 90px;
height: 105px;
}
.eyewear_mystery_201506 {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -576px;
+ background-position: -560px -106px;
width: 90px;
height: 105px;
}
.shop_armor_mystery_201506 {
background-image: url(spritesmith-main-4.png);
- background-position: -485px -420px;
+ background-position: -287px -1486px;
width: 40px;
height: 40px;
}
.shop_eyewear_mystery_201506 {
background-image: url(spritesmith-main-4.png);
- background-position: -485px -379px;
+ background-position: -246px -1486px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201506 {
background-image: url(spritesmith-main-4.png);
- background-position: -657px -424px;
+ background-position: -560px 0px;
width: 90px;
height: 105px;
}
.back_mystery_201507 {
background-image: url(spritesmith-main-4.png);
- background-position: -657px -318px;
+ background-position: -469px -106px;
width: 90px;
height: 105px;
}
.eyewear_mystery_201507 {
background-image: url(spritesmith-main-4.png);
- background-position: -657px -212px;
+ background-position: -469px 0px;
width: 90px;
height: 105px;
}
.shop_back_mystery_201507 {
background-image: url(spritesmith-main-4.png);
- background-position: -424px -329px;
+ background-position: -205px -1486px;
width: 40px;
height: 40px;
}
.shop_eyewear_mystery_201507 {
background-image: url(spritesmith-main-4.png);
- background-position: -475px -318px;
+ background-position: -82px -1486px;
width: 40px;
height: 40px;
}
.broad_armor_mystery_201508 {
background-image: url(spritesmith-main-4.png);
- background-position: -188px -682px;
+ background-position: -742px 0px;
width: 93px;
height: 90px;
}
.head_mystery_201508 {
background-image: url(spritesmith-main-4.png);
- background-position: -282px -682px;
+ background-position: -742px -91px;
width: 93px;
height: 90px;
}
.shop_armor_mystery_201508 {
background-image: url(spritesmith-main-4.png);
- background-position: -607px -424px;
+ background-position: -41px -1486px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201508 {
background-image: url(spritesmith-main-4.png);
- background-position: -566px -424px;
+ background-position: 0px -1486px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201508 {
background-image: url(spritesmith-main-4.png);
- background-position: -376px -682px;
+ background-position: -742px -273px;
width: 93px;
height: 90px;
}
.broad_armor_mystery_201509 {
background-image: url(spritesmith-main-4.png);
- background-position: -546px -1410px;
+ background-position: -1456px -1395px;
width: 90px;
height: 90px;
}
.head_mystery_201509 {
background-image: url(spritesmith-main-4.png);
- background-position: -637px -1410px;
+ background-position: -1564px 0px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201509 {
background-image: url(spritesmith-main-4.png);
- background-position: -698px -530px;
+ background-position: -699px -576px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201509 {
background-image: url(spritesmith-main-4.png);
- background-position: -839px -728px;
+ background-position: -658px -576px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201509 {
background-image: url(spritesmith-main-4.png);
- background-position: -910px -1410px;
+ background-position: -1564px -273px;
width: 90px;
height: 90px;
}
.back_mystery_201510 {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -288px;
+ background-position: -212px -288px;
width: 105px;
height: 90px;
}
.headAccessory_mystery_201510 {
background-image: url(spritesmith-main-4.png);
- background-position: -658px -682px;
+ background-position: -742px -455px;
width: 93px;
height: 90px;
}
.shop_back_mystery_201510 {
background-image: url(spritesmith-main-4.png);
- background-position: -974px -819px;
+ background-position: -424px -329px;
width: 40px;
height: 40px;
}
.shop_headAccessory_mystery_201510 {
background-image: url(spritesmith-main-4.png);
- background-position: -933px -819px;
+ background-position: -424px -288px;
width: 40px;
height: 40px;
}
.broad_armor_mystery_201511 {
background-image: url(spritesmith-main-4.png);
- background-position: -1365px -1410px;
+ background-position: -1564px -728px;
width: 90px;
height: 90px;
}
.head_mystery_201511 {
background-image: url(spritesmith-main-4.png);
- background-position: -1456px -1410px;
+ background-position: -1564px -819px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201511 {
background-image: url(spritesmith-main-4.png);
- background-position: -1613px -1456px;
+ background-position: -603px -424px;
width: 42px;
height: 42px;
}
.shop_head_mystery_201511 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -1456px;
+ background-position: -560px -424px;
width: 42px;
height: 42px;
}
.slim_armor_mystery_201511 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -182px;
+ background-position: -1564px -1092px;
width: 90px;
height: 90px;
}
.broad_armor_mystery_201512 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -273px;
+ background-position: -1564px -1183px;
width: 90px;
height: 90px;
}
.head_mystery_201512 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -364px;
+ background-position: -1564px -1274px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201512 {
background-image: url(spritesmith-main-4.png);
- background-position: -1247px -1092px;
+ background-position: -1558px -1527px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201512 {
background-image: url(spritesmith-main-4.png);
- background-position: -1297px -1183px;
+ background-position: -510px -318px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201512 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -637px;
+ background-position: -1564px -1365px;
width: 90px;
height: 90px;
}
.head_mystery_201601 {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -91px;
+ background-position: -121px 0px;
width: 120px;
height: 90px;
}
.shield_mystery_201601 {
background-image: url(spritesmith-main-4.png);
- background-position: -121px 0px;
+ background-position: 0px -91px;
width: 120px;
height: 90px;
}
.shop_head_mystery_201601 {
background-image: url(spritesmith-main-4.png);
- background-position: -1429px -1274px;
+ background-position: -300px -182px;
width: 40px;
height: 40px;
}
.shop_shield_mystery_201601 {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -1274px;
+ background-position: -300px -223px;
width: 40px;
height: 40px;
}
.back_mystery_201602 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -1092px;
+ background-position: -1564px -637px;
width: 90px;
height: 90px;
}
.head_mystery_201602 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -1183px;
+ background-position: -1564px -546px;
width: 90px;
height: 90px;
}
.shop_back_mystery_201602 {
background-image: url(spritesmith-main-4.png);
- background-position: -615px -1542px;
+ background-position: -597px -470px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201602 {
background-image: url(spritesmith-main-4.png);
- background-position: -1115px -1001px;
+ background-position: -597px -511px;
width: 40px;
height: 40px;
}
.broad_armor_mystery_201603 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -1365px;
+ background-position: -1564px -182px;
width: 90px;
height: 90px;
}
.head_mystery_201603 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -1274px;
+ background-position: -1564px -91px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201603 {
background-image: url(spritesmith-main-4.png);
- background-position: -1156px -1001px;
+ background-position: -658px -617px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201603 {
background-image: url(spritesmith-main-4.png);
- background-position: -1520px -1365px;
+ background-position: -699px -617px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201603 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -1001px;
+ background-position: -1274px -1395px;
width: 90px;
height: 90px;
}
.broad_armor_mystery_201604 {
background-image: url(spritesmith-main-4.png);
- background-position: -839px -455px;
+ background-position: -742px -182px;
width: 93px;
height: 90px;
}
.head_mystery_201604 {
background-image: url(spritesmith-main-4.png);
- background-position: -839px -182px;
+ background-position: -564px -576px;
width: 93px;
height: 90px;
}
.shop_armor_mystery_201604 {
background-image: url(spritesmith-main-4.png);
- background-position: -1338px -1183px;
+ background-position: -123px -1486px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201604 {
background-image: url(spritesmith-main-4.png);
- background-position: -1206px -1092px;
+ background-position: -164px -1486px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201604 {
background-image: url(spritesmith-main-4.png);
- background-position: -839px -91px;
+ background-position: -470px -576px;
width: 93px;
height: 90px;
}
.broad_armor_mystery_201605 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px -91px;
+ background-position: -455px -1395px;
width: 90px;
height: 90px;
}
.head_mystery_201605 {
background-image: url(spritesmith-main-4.png);
- background-position: -1570px 0px;
+ background-position: -364px -1395px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201605 {
background-image: url(spritesmith-main-4.png);
- background-position: -1024px -910px;
+ background-position: -328px -1486px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201605 {
background-image: url(spritesmith-main-4.png);
- background-position: -1065px -910px;
+ background-position: -369px -1486px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201605 {
background-image: url(spritesmith-main-4.png);
- background-position: -1274px -1410px;
+ background-position: 0px -1395px;
width: 90px;
height: 90px;
}
.broad_armor_mystery_201606 {
background-image: url(spritesmith-main-4.png);
- background-position: -566px 0px;
+ background-position: -560px -318px;
width: 90px;
height: 105px;
}
.head_mystery_201606 {
background-image: url(spritesmith-main-4.png);
- background-position: -819px -1410px;
+ background-position: -1473px -1001px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_201606 {
background-image: url(spritesmith-main-4.png);
- background-position: -880px -728px;
+ background-position: -533px -1486px;
width: 40px;
height: 40px;
}
.shop_head_mystery_201606 {
background-image: url(spritesmith-main-4.png);
- background-position: -657px -530px;
+ background-position: -574px -1486px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_201606 {
background-image: url(spritesmith-main-4.png);
- background-position: -566px -318px;
+ background-position: 0px -470px;
width: 90px;
height: 105px;
}
+.broad_armor_mystery_201607 {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -1473px -546px;
+ width: 90px;
+ height: 90px;
+}
+.head_mystery_201607 {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -1473px -455px;
+ width: 90px;
+ height: 90px;
+}
+.shop_armor_mystery_201607 {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -738px -1486px;
+ width: 40px;
+ height: 40px;
+}
+.shop_head_mystery_201607 {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -779px -1486px;
+ width: 40px;
+ height: 40px;
+}
+.slim_armor_mystery_201607 {
+ background-image: url(spritesmith-main-4.png);
+ background-position: -1473px 0px;
+ width: 90px;
+ height: 90px;
+}
.broad_armor_mystery_301404 {
background-image: url(spritesmith-main-4.png);
- background-position: -364px -1410px;
+ background-position: -1183px -1304px;
width: 90px;
height: 90px;
}
.eyewear_mystery_301404 {
background-image: url(spritesmith-main-4.png);
- background-position: -273px -1410px;
+ background-position: -1092px -1304px;
width: 90px;
height: 90px;
}
.head_mystery_301404 {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -1410px;
+ background-position: -728px -1304px;
width: 90px;
height: 90px;
}
.shop_armor_mystery_301404 {
background-image: url(spritesmith-main-4.png);
- background-position: -516px -318px;
+ background-position: -984px -1486px;
width: 40px;
height: 40px;
}
.shop_eyewear_mystery_301404 {
background-image: url(spritesmith-main-4.png);
- background-position: -318px -182px;
+ background-position: -1025px -1486px;
width: 40px;
height: 40px;
}
.shop_head_mystery_301404 {
background-image: url(spritesmith-main-4.png);
- background-position: -318px -223px;
+ background-position: -1066px -1486px;
width: 40px;
height: 40px;
}
.shop_weapon_mystery_301404 {
background-image: url(spritesmith-main-4.png);
- background-position: -424px -288px;
+ background-position: -1107px -1486px;
width: 40px;
height: 40px;
}
.slim_armor_mystery_301404 {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -1274px;
+ background-position: -637px -1304px;
width: 90px;
height: 90px;
}
.weapon_mystery_301404 {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -910px;
+ background-position: -273px -1304px;
width: 90px;
height: 90px;
}
.eyewear_mystery_301405 {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -819px;
+ background-position: -182px -1304px;
width: 90px;
height: 90px;
}
.headAccessory_mystery_301405 {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -364px;
+ background-position: -1382px -1092px;
width: 90px;
height: 90px;
}
.head_mystery_301405 {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -455px;
+ background-position: -1382px -1183px;
width: 90px;
height: 90px;
}
.shield_mystery_301405 {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px 0px;
+ background-position: -1382px -728px;
width: 90px;
height: 90px;
}
.shop_eyewear_mystery_301405 {
background-image: url(spritesmith-main-4.png);
- background-position: -793px -682px;
+ background-position: -1394px -1486px;
width: 40px;
height: 40px;
}
.shop_headAccessory_mystery_301405 {
background-image: url(spritesmith-main-4.png);
- background-position: -793px -723px;
+ background-position: -1476px -1486px;
width: 40px;
height: 40px;
}
.shop_head_mystery_301405 {
background-image: url(spritesmith-main-4.png);
- background-position: -752px -723px;
+ background-position: -1435px -1486px;
width: 40px;
height: 40px;
}
.shop_shield_mystery_301405 {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -1501px;
+ background-position: -1517px -1486px;
width: 40px;
height: 40px;
}
.broad_armor_special_spring2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -1092px -1319px;
+ background-position: -1382px -637px;
width: 90px;
height: 90px;
}
.broad_armor_special_spring2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -1001px -1319px;
+ background-position: -1382px -273px;
width: 90px;
height: 90px;
}
.broad_armor_special_spring2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -637px -1319px;
+ background-position: -1382px -182px;
width: 90px;
height: 90px;
}
.broad_armor_special_spring2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -546px -1319px;
+ background-position: -1183px -1213px;
width: 90px;
height: 90px;
}
.broad_armor_special_spring2016Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -273px -1319px;
+ background-position: -1092px -1213px;
width: 90px;
height: 90px;
}
.broad_armor_special_spring2016Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -182px -1319px;
+ background-position: -728px -1213px;
width: 90px;
height: 90px;
}
.broad_armor_special_spring2016Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -491px -576px;
+ background-position: -424px -379px;
width: 102px;
height: 90px;
}
.broad_armor_special_spring2016Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -1001px;
+ background-position: -273px -1213px;
width: 90px;
height: 90px;
}
.broad_armor_special_springHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -637px;
+ background-position: -182px -1213px;
width: 90px;
height: 90px;
}
.broad_armor_special_springMage {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -546px;
+ background-position: -1291px -1092px;
width: 90px;
height: 90px;
}
.broad_armor_special_springRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -273px;
+ background-position: -1291px -1001px;
width: 90px;
height: 90px;
}
.broad_armor_special_springWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px -182px;
+ background-position: -1291px -637px;
width: 90px;
height: 90px;
}
.headAccessory_special_spring2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -1001px -1137px;
+ background-position: -728px -1031px;
width: 90px;
height: 90px;
}
.headAccessory_special_spring2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -910px -1137px;
+ background-position: -637px -1031px;
width: 90px;
height: 90px;
}
.headAccessory_special_spring2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -546px -1137px;
+ background-position: -546px -1031px;
width: 90px;
height: 90px;
}
.headAccessory_special_spring2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -455px -1137px;
+ background-position: -455px -1031px;
width: 90px;
height: 90px;
}
.headAccessory_special_spring2016Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -364px -1137px;
+ background-position: -364px -1031px;
width: 90px;
height: 90px;
}
.headAccessory_special_spring2016Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -1206px -1001px;
+ background-position: -273px -1031px;
width: 90px;
height: 90px;
}
.headAccessory_special_spring2016Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -388px -576px;
+ background-position: -297px -470px;
width: 102px;
height: 90px;
}
.headAccessory_special_spring2016Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -364px -1046px;
+ background-position: -91px -1031px;
width: 90px;
height: 90px;
}
.headAccessory_special_springHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -273px -1046px;
+ background-position: 0px -1031px;
width: 90px;
height: 90px;
}
.headAccessory_special_springMage {
background-image: url(spritesmith-main-4.png);
- background-position: -182px -1046px;
+ background-position: -1109px -910px;
width: 90px;
height: 90px;
}
.headAccessory_special_springRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -91px -1046px;
+ background-position: -1109px -819px;
width: 90px;
height: 90px;
}
.headAccessory_special_springWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -1046px;
+ background-position: -1109px -728px;
width: 90px;
height: 90px;
}
.head_special_spring2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -1183px -1228px;
+ background-position: -1291px -546px;
width: 90px;
height: 90px;
}
.head_special_spring2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -1092px -1228px;
+ background-position: -1291px -182px;
width: 90px;
height: 90px;
}
.head_special_spring2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -728px -1228px;
+ background-position: -1291px -91px;
width: 90px;
height: 90px;
}
.head_special_spring2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -637px -1228px;
+ background-position: -1291px 0px;
width: 90px;
height: 90px;
}
.head_special_spring2016Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -273px -1228px;
+ background-position: -819px -1122px;
width: 90px;
height: 90px;
}
.head_special_spring2016Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -182px -1228px;
+ background-position: -728px -1122px;
width: 90px;
height: 90px;
}
.head_special_spring2016Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -530px -485px;
+ background-position: -194px -470px;
width: 102px;
height: 90px;
}
.head_special_spring2016Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1297px -910px;
+ background-position: -1200px 0px;
width: 90px;
height: 90px;
}
.head_special_springHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -1297px -546px;
+ background-position: -1092px -1031px;
width: 90px;
height: 90px;
}
.head_special_springMage {
background-image: url(spritesmith-main-4.png);
- background-position: -1297px -455px;
+ background-position: -1001px -1031px;
width: 90px;
height: 90px;
}
.head_special_springRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1297px -182px;
+ background-position: -910px -1031px;
width: 90px;
height: 90px;
}
.head_special_springWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1297px -91px;
+ background-position: -819px -1031px;
width: 90px;
height: 90px;
}
.shield_special_spring2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -1115px -910px;
+ background-position: -1109px -637px;
width: 90px;
height: 90px;
}
.shield_special_spring2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1115px -819px;
+ background-position: -1109px -546px;
width: 90px;
height: 90px;
}
.shield_special_spring2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1115px -728px;
+ background-position: -1109px -455px;
width: 90px;
height: 90px;
}
.shield_special_spring2016Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -1115px -637px;
+ background-position: -1109px -364px;
width: 90px;
height: 90px;
}
.shield_special_spring2016Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -182px -576px;
+ background-position: -400px -470px;
width: 102px;
height: 90px;
}
.shield_special_spring2016Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1115px -455px;
+ background-position: -1109px -182px;
width: 90px;
height: 90px;
}
.shield_special_springHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -1115px -364px;
+ background-position: -1109px -91px;
width: 90px;
height: 90px;
}
.shield_special_springRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1115px -273px;
+ background-position: -1109px 0px;
width: 90px;
height: 90px;
}
.shield_special_springWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1115px -182px;
+ background-position: -1001px -940px;
width: 90px;
height: 90px;
}
.shop_armor_special_spring2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -246px -1542px;
+ background-position: -123px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_spring2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -287px -1542px;
+ background-position: -164px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_spring2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -328px -1542px;
+ background-position: -205px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_spring2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -369px -1542px;
+ background-position: -246px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_spring2016Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -410px -1542px;
+ background-position: -287px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_spring2016Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -451px -1542px;
+ background-position: -328px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_spring2016Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -492px -1542px;
+ background-position: -369px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_spring2016Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -533px -1542px;
+ background-position: -410px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_springHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -574px -1542px;
+ background-position: -451px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_springMage {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -1365px;
+ background-position: -492px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_springRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -656px -1542px;
+ background-position: -533px -1568px;
width: 40px;
height: 40px;
}
.shop_armor_special_springWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -697px -1542px;
+ background-position: -574px -1568px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_spring2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -1230px -1542px;
+ background-position: -1107px -1568px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_spring2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -1271px -1542px;
+ background-position: -1148px -1568px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_spring2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1312px -1542px;
+ background-position: -1189px -1568px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_spring2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1353px -1542px;
+ background-position: -1230px -1568px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_spring2016Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -1394px -1542px;
+ background-position: -1271px -1568px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_spring2016Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -1435px -1542px;
+ background-position: -1312px -1568px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_spring2016Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1476px -1542px;
+ background-position: -1353px -1568px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_spring2016Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1517px -1542px;
+ background-position: -1394px -1568px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_springHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -1558px -1542px;
+ background-position: -1435px -1568px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_springMage {
background-image: url(spritesmith-main-4.png);
- background-position: -1599px -1542px;
+ background-position: -1476px -1568px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_springRogue {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -1583px;
+ background-position: -1517px -1568px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_springWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -41px -1583px;
+ background-position: -1558px -1568px;
width: 40px;
height: 40px;
}
.shop_head_special_spring2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -738px -1542px;
+ background-position: -615px -1568px;
width: 40px;
height: 40px;
}
.shop_head_special_spring2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -779px -1542px;
+ background-position: -656px -1568px;
width: 40px;
height: 40px;
}
.shop_head_special_spring2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -820px -1542px;
+ background-position: -697px -1568px;
width: 40px;
height: 40px;
}
.shop_head_special_spring2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -861px -1542px;
+ background-position: -738px -1568px;
width: 40px;
height: 40px;
}
.shop_head_special_spring2016Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -902px -1542px;
+ background-position: -779px -1568px;
width: 40px;
height: 40px;
}
.shop_head_special_spring2016Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -943px -1542px;
+ background-position: -820px -1568px;
width: 40px;
height: 40px;
}
.shop_head_special_spring2016Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -984px -1542px;
+ background-position: -861px -1568px;
width: 40px;
height: 40px;
}
.shop_head_special_spring2016Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1025px -1542px;
+ background-position: -902px -1568px;
width: 40px;
height: 40px;
}
.shop_head_special_springHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -1066px -1542px;
+ background-position: -943px -1568px;
width: 40px;
height: 40px;
}
.shop_head_special_springMage {
background-image: url(spritesmith-main-4.png);
- background-position: -1107px -1542px;
+ background-position: -984px -1568px;
width: 40px;
height: 40px;
}
.shop_head_special_springRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1148px -1542px;
+ background-position: -1025px -1568px;
width: 40px;
height: 40px;
}
.shop_head_special_springWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1189px -1542px;
+ background-position: -1066px -1568px;
width: 40px;
height: 40px;
}
.shop_shield_special_spring2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -82px -1583px;
+ background-position: -1599px -1568px;
width: 40px;
height: 40px;
}
.shop_shield_special_spring2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -123px -1583px;
+ background-position: 0px -1609px;
width: 40px;
height: 40px;
}
.shop_shield_special_spring2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -164px -1583px;
+ background-position: -41px -1609px;
width: 40px;
height: 40px;
}
.shop_shield_special_spring2016Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -205px -1583px;
+ background-position: -82px -1609px;
width: 40px;
height: 40px;
}
.shop_shield_special_spring2016Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -246px -1583px;
+ background-position: -123px -1609px;
width: 40px;
height: 40px;
}
.shop_shield_special_spring2016Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -287px -1583px;
+ background-position: -164px -1609px;
width: 40px;
height: 40px;
}
.shop_shield_special_springHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -328px -1583px;
+ background-position: -205px -1609px;
width: 40px;
height: 40px;
}
.shop_shield_special_springRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -369px -1583px;
+ background-position: -246px -1609px;
width: 40px;
height: 40px;
}
.shop_shield_special_springWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -410px -1583px;
+ background-position: -287px -1609px;
width: 40px;
height: 40px;
}
.shop_weapon_special_spring2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -451px -1583px;
+ background-position: -328px -1609px;
width: 40px;
height: 40px;
}
.shop_weapon_special_spring2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -492px -1583px;
+ background-position: -369px -1609px;
width: 40px;
height: 40px;
}
.shop_weapon_special_spring2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -533px -1583px;
+ background-position: -410px -1609px;
width: 40px;
height: 40px;
}
.shop_weapon_special_spring2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -574px -1583px;
+ background-position: -451px -1609px;
width: 40px;
height: 40px;
}
.shop_weapon_special_spring2016Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -615px -1583px;
+ background-position: -492px -1609px;
width: 40px;
height: 40px;
}
.shop_weapon_special_spring2016Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -656px -1583px;
+ background-position: -533px -1609px;
width: 40px;
height: 40px;
}
.shop_weapon_special_spring2016Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -697px -1583px;
+ background-position: -574px -1609px;
width: 40px;
height: 40px;
}
.shop_weapon_special_spring2016Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -738px -1583px;
+ background-position: -615px -1609px;
width: 40px;
height: 40px;
}
.shop_weapon_special_springHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -779px -1583px;
+ background-position: -656px -1609px;
width: 40px;
height: 40px;
}
.shop_weapon_special_springMage {
background-image: url(spritesmith-main-4.png);
- background-position: -820px -1583px;
+ background-position: -697px -1609px;
width: 40px;
height: 40px;
}
.shop_weapon_special_springRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -861px -1583px;
+ background-position: -738px -1609px;
width: 40px;
height: 40px;
}
.shop_weapon_special_springWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -902px -1583px;
+ background-position: -779px -1609px;
width: 40px;
height: 40px;
}
.slim_armor_special_spring2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -1115px -91px;
+ background-position: -910px -940px;
width: 90px;
height: 90px;
}
.slim_armor_special_spring2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -1115px 0px;
+ background-position: -819px -940px;
width: 90px;
height: 90px;
}
.slim_armor_special_spring2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1001px -955px;
+ background-position: -728px -940px;
width: 90px;
height: 90px;
}
.slim_armor_special_spring2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -910px -955px;
+ background-position: -273px -849px;
width: 90px;
height: 90px;
}
.slim_armor_special_spring2016Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -819px -955px;
+ background-position: -182px -849px;
width: 90px;
height: 90px;
}
.slim_armor_special_spring2016Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -728px -955px;
+ background-position: -91px -849px;
width: 90px;
height: 90px;
}
.slim_armor_special_spring2016Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -637px -955px;
+ background-position: -836px -182px;
width: 90px;
height: 90px;
}
.slim_armor_special_spring2016Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -546px -955px;
+ background-position: -836px -91px;
width: 90px;
height: 90px;
}
.slim_armor_special_springHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -455px -955px;
+ background-position: -836px 0px;
width: 90px;
height: 90px;
}
.slim_armor_special_springMage {
background-image: url(spritesmith-main-4.png);
- background-position: -364px -955px;
+ background-position: -728px -667px;
width: 90px;
height: 90px;
}
.slim_armor_special_springRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -273px -955px;
+ background-position: -637px -667px;
width: 90px;
height: 90px;
}
.slim_armor_special_springWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -182px -955px;
+ background-position: -546px -667px;
width: 90px;
height: 90px;
}
.weapon_special_spring2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -91px -955px;
+ background-position: -455px -667px;
width: 90px;
height: 90px;
}
.weapon_special_spring2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: 0px -955px;
+ background-position: -364px -667px;
width: 90px;
height: 90px;
}
.weapon_special_spring2015Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1024px -819px;
+ background-position: -273px -667px;
width: 90px;
height: 90px;
}
.weapon_special_spring2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1024px -728px;
+ background-position: -182px -667px;
width: 90px;
height: 90px;
}
.weapon_special_spring2016Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -933px -182px;
+ background-position: -91px -667px;
width: 90px;
height: 90px;
}
.weapon_special_spring2016Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -933px -91px;
+ background-position: 0px -667px;
width: 90px;
height: 90px;
}
.weapon_special_spring2016Rogue {
background-image: url(spritesmith-main-4.png);
- background-position: -285px -576px;
+ background-position: -91px -470px;
width: 102px;
height: 90px;
}
.weapon_special_spring2016Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -455px -1410px;
+ background-position: -651px -382px;
width: 90px;
height: 90px;
}
.weapon_special_springHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -182px -1410px;
+ background-position: -1564px -1001px;
width: 90px;
height: 90px;
}
.weapon_special_springMage {
background-image: url(spritesmith-main-4.png);
- background-position: -91px -1410px;
+ background-position: -1564px -910px;
width: 90px;
height: 90px;
}
.weapon_special_springRogue {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -1183px;
+ background-position: -1564px -455px;
width: 90px;
height: 90px;
}
.weapon_special_springWarrior {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -1092px;
+ background-position: -1564px -364px;
width: 90px;
height: 90px;
}
.body_special_summer2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -1001px;
+ background-position: -1365px -1395px;
width: 90px;
height: 90px;
}
.body_special_summer2015Mage {
background-image: url(spritesmith-main-4.png);
- background-position: -1479px -728px;
+ background-position: -1183px -1395px;
width: 90px;
height: 90px;
}
@@ -2658,103 +2760,25 @@
}
.body_special_summer2015Warrior {
background-image: url(spritesmith-main-4.png);
- background-position: -566px -106px;
+ background-position: -469px -212px;
width: 90px;
height: 105px;
}
.body_special_summerHealer {
background-image: url(spritesmith-main-4.png);
- background-position: -657px -106px;
+ background-position: -363px -91px;
width: 90px;
height: 105px;
}
.body_special_summerMage {
background-image: url(spritesmith-main-4.png);
- background-position: -475px 0px;
+ background-position: -103px -182px;
width: 90px;
height: 105px;
}
.broad_armor_special_summer2015Healer {
background-image: url(spritesmith-main-4.png);
- background-position: -1388px 0px;
+ background-position: -819px -1395px;
width: 90px;
height: 90px;
}
-.broad_armor_special_summer2015Mage {
- background-image: url(spritesmith-main-4.png);
- background-position: -1297px -1092px;
- width: 90px;
- height: 90px;
-}
-.broad_armor_special_summer2015Rogue {
- background-image: url(spritesmith-main-4.png);
- background-position: -103px -182px;
- width: 102px;
- height: 105px;
-}
-.broad_armor_special_summer2015Warrior {
- background-image: url(spritesmith-main-4.png);
- background-position: -475px -106px;
- width: 90px;
- height: 105px;
-}
-.broad_armor_special_summer2016Healer {
- background-image: url(spritesmith-main-4.png);
- background-position: 0px -379px;
- width: 90px;
- height: 105px;
-}
-.broad_armor_special_summer2016Mage {
- background-image: url(spritesmith-main-4.png);
- background-position: -182px -379px;
- width: 90px;
- height: 105px;
-}
-.broad_armor_special_summer2016Rogue {
- background-image: url(spritesmith-main-4.png);
- background-position: -566px -212px;
- width: 90px;
- height: 105px;
-}
-.broad_armor_special_summer2016Warrior {
- background-image: url(spritesmith-main-4.png);
- background-position: -657px 0px;
- width: 90px;
- height: 105px;
-}
-.broad_armor_special_summerHealer {
- background-image: url(spritesmith-main-4.png);
- background-position: -91px -379px;
- width: 90px;
- height: 105px;
-}
-.broad_armor_special_summerMage {
- background-image: url(spritesmith-main-4.png);
- background-position: -475px -212px;
- width: 90px;
- height: 105px;
-}
-.broad_armor_special_summerRogue {
- background-image: url(spritesmith-main-4.png);
- background-position: -363px -91px;
- width: 111px;
- height: 90px;
-}
-.broad_armor_special_summerWarrior {
- background-image: url(spritesmith-main-4.png);
- background-position: -363px 0px;
- width: 111px;
- height: 90px;
-}
-.eyewear_special_summerRogue {
- background-image: url(spritesmith-main-4.png);
- background-position: -363px -182px;
- width: 111px;
- height: 90px;
-}
-.eyewear_special_summerWarrior {
- background-image: url(spritesmith-main-4.png);
- background-position: -206px -182px;
- width: 111px;
- height: 90px;
-}
diff --git a/common/dist/sprites/spritesmith-main-4.png b/common/dist/sprites/spritesmith-main-4.png
index a885d48d83..483b4759db 100644
Binary files a/common/dist/sprites/spritesmith-main-4.png and b/common/dist/sprites/spritesmith-main-4.png differ
diff --git a/common/dist/sprites/spritesmith-main-5.css b/common/dist/sprites/spritesmith-main-5.css
index 2034ba8d27..49b3286666 100644
--- a/common/dist/sprites/spritesmith-main-5.css
+++ b/common/dist/sprites/spritesmith-main-5.css
@@ -1,3000 +1,3048 @@
+.broad_armor_special_summer2015Mage {
+ background-image: url(spritesmith-main-5.png);
+ background-position: -455px -960px;
+ width: 90px;
+ height: 90px;
+}
+.broad_armor_special_summer2015Rogue {
+ background-image: url(spritesmith-main-5.png);
+ background-position: -309px -387px;
+ width: 102px;
+ height: 105px;
+}
+.broad_armor_special_summer2015Warrior {
+ background-image: url(spritesmith-main-5.png);
+ background-position: -946px -106px;
+ width: 90px;
+ height: 105px;
+}
+.broad_armor_special_summer2016Healer {
+ background-image: url(spritesmith-main-5.png);
+ background-position: -273px -763px;
+ width: 90px;
+ height: 105px;
+}
+.broad_armor_special_summer2016Mage {
+ background-image: url(spritesmith-main-5.png);
+ background-position: -546px -763px;
+ width: 90px;
+ height: 105px;
+}
+.broad_armor_special_summer2016Rogue {
+ background-image: url(spritesmith-main-5.png);
+ background-position: -182px -763px;
+ width: 90px;
+ height: 105px;
+}
+.broad_armor_special_summer2016Warrior {
+ background-image: url(spritesmith-main-5.png);
+ background-position: -855px -636px;
+ width: 90px;
+ height: 105px;
+}
+.broad_armor_special_summerHealer {
+ background-image: url(spritesmith-main-5.png);
+ background-position: -855px -530px;
+ width: 90px;
+ height: 105px;
+}
+.broad_armor_special_summerMage {
+ background-image: url(spritesmith-main-5.png);
+ background-position: -819px -763px;
+ width: 90px;
+ height: 105px;
+}
+.broad_armor_special_summerRogue {
+ background-image: url(spritesmith-main-5.png);
+ background-position: -631px -455px;
+ width: 111px;
+ height: 90px;
+}
+.broad_armor_special_summerWarrior {
+ background-image: url(spritesmith-main-5.png);
+ background-position: -631px 0px;
+ width: 111px;
+ height: 90px;
+}
+.eyewear_special_summerRogue {
+ background-image: url(spritesmith-main-5.png);
+ background-position: -224px -584px;
+ width: 111px;
+ height: 90px;
+}
+.eyewear_special_summerWarrior {
+ background-image: url(spritesmith-main-5.png);
+ background-position: -631px -364px;
+ width: 111px;
+ height: 90px;
+}
.head_special_summer2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -919px -944px;
+ background-position: -819px -960px;
width: 90px;
height: 90px;
}
.head_special_summer2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -546px;
+ background-position: -273px -960px;
width: 90px;
height: 90px;
}
.head_special_summer2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -610px -318px;
+ background-position: -206px -387px;
width: 102px;
height: 105px;
}
.head_special_summer2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -546px -838px;
+ background-position: -637px -763px;
width: 90px;
height: 105px;
}
.head_special_summer2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1095px -637px;
+ background-position: -1001px -960px;
width: 90px;
height: 90px;
}
.head_special_summer2016Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1095px -728px;
+ background-position: -910px -1142px;
width: 90px;
height: 90px;
}
.head_special_summer2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -109px -429px;
+ background-position: -218px -278px;
width: 108px;
height: 108px;
}
.head_special_summer2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1095px -91px;
+ background-position: -364px -960px;
width: 90px;
height: 90px;
}
.head_special_summerHealer {
background-image: url(spritesmith-main-5.png);
- background-position: -91px -838px;
+ background-position: -855px -212px;
width: 90px;
height: 105px;
}
.head_special_summerMage {
background-image: url(spritesmith-main-5.png);
- background-position: -273px -838px;
+ background-position: 0px -763px;
width: 90px;
height: 105px;
}
.head_special_summerRogue {
background-image: url(spritesmith-main-5.png);
- background-position: -457px -538px;
+ background-position: -345px -493px;
width: 111px;
height: 90px;
}
.head_special_summerWarrior {
background-image: url(spritesmith-main-5.png);
- background-position: -569px -538px;
+ background-position: -457px -493px;
width: 111px;
height: 90px;
}
.Healer_Summer {
background-image: url(spritesmith-main-5.png);
- background-position: -901px -212px;
+ background-position: -946px 0px;
width: 90px;
height: 105px;
}
.Mage_Summer {
background-image: url(spritesmith-main-5.png);
- background-position: -901px -530px;
+ background-position: -743px -491px;
width: 90px;
height: 105px;
}
.SummerRogue14 {
background-image: url(spritesmith-main-5.png);
- background-position: -309px -629px;
+ background-position: -631px -91px;
width: 111px;
height: 90px;
}
.SummerWarrior14 {
background-image: url(spritesmith-main-5.png);
- background-position: -345px -538px;
+ background-position: -631px -182px;
width: 111px;
height: 90px;
}
.shield_special_summer2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1095px -455px;
+ background-position: -910px -960px;
width: 90px;
height: 90px;
}
.shield_special_summer2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -610px 0px;
+ background-position: -103px -387px;
width: 102px;
height: 105px;
}
.shield_special_summer2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -901px 0px;
+ background-position: -728px -763px;
width: 90px;
height: 105px;
}
.shield_special_summer2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -273px -1217px;
+ background-position: 0px -960px;
width: 90px;
height: 90px;
}
.shield_special_summer2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -326px -290px;
+ background-position: -109px -278px;
width: 108px;
height: 108px;
}
.shield_special_summer2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -610px -106px;
+ background-position: 0px -387px;
width: 102px;
height: 105px;
}
.shield_special_summerHealer {
background-image: url(spritesmith-main-5.png);
- background-position: -901px -424px;
+ background-position: -946px -212px;
width: 90px;
height: 105px;
}
.shield_special_summerRogue {
background-image: url(spritesmith-main-5.png);
- background-position: -789px 0px;
+ background-position: -336px -584px;
width: 111px;
height: 90px;
}
.shield_special_summerWarrior {
background-image: url(spritesmith-main-5.png);
- background-position: -421px -629px;
+ background-position: -448px -584px;
width: 111px;
height: 90px;
}
.shop_armor_special_summer2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -984px -1624px;
+ background-position: -1668px -287px;
width: 40px;
height: 40px;
}
.shop_armor_special_summer2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1025px -1624px;
+ background-position: -1668px -328px;
width: 40px;
height: 40px;
}
.shop_armor_special_summer2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1682px 0px;
+ background-position: -1668px -943px;
width: 40px;
height: 40px;
}
.shop_armor_special_summer2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1682px -205px;
+ background-position: -1668px -984px;
width: 40px;
height: 40px;
}
.shop_armor_special_summer2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1682px -164px;
+ background-position: -1668px -902px;
width: 40px;
height: 40px;
}
.shop_armor_special_summer2016Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1682px -123px;
+ background-position: -1668px -820px;
width: 40px;
height: 40px;
}
.shop_armor_special_summer2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1682px -82px;
+ background-position: -1668px -779px;
width: 40px;
height: 40px;
}
.shop_armor_special_summer2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1682px -41px;
+ background-position: -1668px -656px;
width: 40px;
height: 40px;
}
.shop_armor_special_summerHealer {
background-image: url(spritesmith-main-5.png);
- background-position: -1640px -1624px;
+ background-position: -1668px -574px;
width: 40px;
height: 40px;
}
.shop_armor_special_summerMage {
background-image: url(spritesmith-main-5.png);
- background-position: -1599px -1624px;
+ background-position: -656px -1602px;
width: 40px;
height: 40px;
}
.shop_armor_special_summerRogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1517px -1624px;
+ background-position: -574px -1602px;
width: 40px;
height: 40px;
}
.shop_armor_special_summerWarrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1476px -1624px;
+ background-position: -533px -1602px;
width: 40px;
height: 40px;
}
.shop_body_special_summer2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1353px -1624px;
+ background-position: -492px -1602px;
width: 40px;
height: 40px;
}
.shop_body_special_summer2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1271px -1624px;
+ background-position: -451px -1602px;
width: 40px;
height: 40px;
}
.shop_body_special_summer2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1312px;
+ background-position: -410px -1602px;
width: 40px;
height: 40px;
}
.shop_body_special_summer2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1230px;
+ background-position: -369px -1602px;
width: 40px;
height: 40px;
}
.shop_body_special_summerHealer {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1189px;
+ background-position: -328px -1602px;
width: 40px;
height: 40px;
}
.shop_body_special_summerMage {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1148px;
+ background-position: -287px -1602px;
width: 40px;
height: 40px;
}
.shop_eyewear_special_summerRogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1107px;
+ background-position: -246px -1602px;
width: 40px;
height: 40px;
}
.shop_eyewear_special_summerWarrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1066px;
+ background-position: -205px -1602px;
width: 40px;
height: 40px;
}
.shop_head_special_summer2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1025px;
+ background-position: -164px -1602px;
width: 40px;
height: 40px;
}
.shop_head_special_summer2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -984px;
+ background-position: -123px -1602px;
width: 40px;
height: 40px;
}
.shop_head_special_summer2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -943px;
+ background-position: -82px -1602px;
width: 40px;
height: 40px;
}
.shop_head_special_summer2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -902px;
+ background-position: -41px -1602px;
width: 40px;
height: 40px;
}
.shop_head_special_summer2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -861px;
+ background-position: 0px -1602px;
width: 40px;
height: 40px;
}
.shop_head_special_summer2016Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -820px;
+ background-position: -1627px -1558px;
width: 40px;
height: 40px;
}
.shop_head_special_summer2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -779px;
+ background-position: -1627px -1517px;
width: 40px;
height: 40px;
}
.shop_head_special_summer2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -738px;
+ background-position: -1627px -1476px;
width: 40px;
height: 40px;
}
.shop_head_special_summerHealer {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -697px;
+ background-position: -1627px -1435px;
width: 40px;
height: 40px;
}
.shop_head_special_summerMage {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -656px;
+ background-position: -1627px -1394px;
width: 40px;
height: 40px;
}
.shop_head_special_summerRogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -615px;
+ background-position: -1627px -1353px;
width: 40px;
height: 40px;
}
.shop_head_special_summerWarrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -574px;
+ background-position: -1627px -1312px;
width: 40px;
height: 40px;
}
.shop_shield_special_summer2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -533px;
+ background-position: -1627px -1271px;
width: 40px;
height: 40px;
}
.shop_shield_special_summer2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -492px;
+ background-position: -1627px -1230px;
width: 40px;
height: 40px;
}
.shop_shield_special_summer2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -451px;
+ background-position: -1627px -1189px;
width: 40px;
height: 40px;
}
.shop_shield_special_summer2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -410px;
+ background-position: -1627px -1148px;
width: 40px;
height: 40px;
}
.shop_shield_special_summer2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -369px;
+ background-position: -1627px -1107px;
width: 40px;
height: 40px;
}
.shop_shield_special_summer2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -328px;
+ background-position: -1627px -1066px;
width: 40px;
height: 40px;
}
.shop_shield_special_summerHealer {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -287px;
+ background-position: -1627px -1025px;
width: 40px;
height: 40px;
}
.shop_shield_special_summerRogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -246px;
+ background-position: -1627px -984px;
width: 40px;
height: 40px;
}
.shop_shield_special_summerWarrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -205px;
+ background-position: -1627px -943px;
width: 40px;
height: 40px;
}
.shop_weapon_special_summer2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -164px;
+ background-position: -1627px -902px;
width: 40px;
height: 40px;
}
.shop_weapon_special_summer2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -123px;
+ background-position: -1627px -861px;
width: 40px;
height: 40px;
}
.shop_weapon_special_summer2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -82px;
+ background-position: -1627px -820px;
width: 40px;
height: 40px;
}
.shop_weapon_special_summer2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -41px;
+ background-position: -1627px -779px;
width: 40px;
height: 40px;
}
.shop_weapon_special_summer2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px 0px;
+ background-position: -1627px -738px;
width: 40px;
height: 40px;
}
.shop_weapon_special_summer2016Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1599px -1583px;
+ background-position: -41px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_special_summer2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1558px -1583px;
+ background-position: 0px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_special_summer2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1517px -1583px;
+ background-position: -1586px -1517px;
width: 40px;
height: 40px;
}
.shop_weapon_special_summerHealer {
background-image: url(spritesmith-main-5.png);
- background-position: -1476px -1583px;
+ background-position: -1586px -1476px;
width: 40px;
height: 40px;
}
.shop_weapon_special_summerMage {
background-image: url(spritesmith-main-5.png);
- background-position: -1435px -1583px;
+ background-position: -1586px -1435px;
width: 40px;
height: 40px;
}
.shop_weapon_special_summerRogue {
background-image: url(spritesmith-main-5.png);
- background-position: -779px -1542px;
+ background-position: -1586px -1394px;
width: 40px;
height: 40px;
}
.shop_weapon_special_summerWarrior {
background-image: url(spritesmith-main-5.png);
- background-position: -738px -1542px;
+ background-position: -1586px -1353px;
width: 40px;
height: 40px;
}
.slim_armor_special_summer2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -737px -944px;
+ background-position: -91px -960px;
width: 90px;
height: 90px;
}
.slim_armor_special_summer2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -828px -944px;
+ background-position: -182px -960px;
width: 90px;
height: 90px;
}
.slim_armor_special_summer2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -424px -429px;
+ background-position: -412px -387px;
width: 102px;
height: 105px;
}
.slim_armor_special_summer2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -182px -838px;
+ background-position: -528px -333px;
width: 90px;
height: 105px;
}
.slim_armor_special_summer2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -901px -106px;
+ background-position: -430px -278px;
width: 90px;
height: 105px;
}
.slim_armor_special_summer2016Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -364px -838px;
+ background-position: -855px 0px;
width: 90px;
height: 105px;
}
.slim_armor_special_summer2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -455px -838px;
+ background-position: -855px -106px;
width: 90px;
height: 105px;
}
.slim_armor_special_summer2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -218px -429px;
+ background-position: -528px 0px;
width: 102px;
height: 105px;
}
.slim_armor_special_summerHealer {
background-image: url(spritesmith-main-5.png);
- background-position: -789px -582px;
+ background-position: -855px -318px;
width: 90px;
height: 105px;
}
.slim_armor_special_summerMage {
background-image: url(spritesmith-main-5.png);
- background-position: -610px -424px;
+ background-position: -855px -424px;
width: 90px;
height: 105px;
}
.slim_armor_special_summerRogue {
background-image: url(spritesmith-main-5.png);
- background-position: -85px -629px;
+ background-position: 0px -584px;
width: 111px;
height: 90px;
}
.slim_armor_special_summerWarrior {
background-image: url(spritesmith-main-5.png);
- background-position: -197px -629px;
+ background-position: -112px -584px;
width: 111px;
height: 90px;
}
.weapon_special_summer2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1095px -819px;
+ background-position: -1131px -91px;
width: 90px;
height: 90px;
}
.weapon_special_summer2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1095px -910px;
+ background-position: -1131px -182px;
width: 90px;
height: 90px;
}
.weapon_special_summer2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -610px -212px;
+ background-position: -528px -106px;
width: 102px;
height: 105px;
}
.weapon_special_summer2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -901px -318px;
+ background-position: -91px -763px;
width: 90px;
height: 105px;
}
.weapon_special_summer2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -182px -1035px;
+ background-position: -1131px -455px;
width: 90px;
height: 90px;
}
.weapon_special_summer2016Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -273px -1035px;
+ background-position: -1131px -546px;
width: 90px;
height: 90px;
}
.weapon_special_summer2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -429px;
+ background-position: 0px -278px;
width: 108px;
height: 108px;
}
.weapon_special_summer2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -321px -429px;
+ background-position: -327px -278px;
width: 102px;
height: 105px;
}
.weapon_special_summerHealer {
background-image: url(spritesmith-main-5.png);
- background-position: -901px -636px;
+ background-position: -364px -763px;
width: 90px;
height: 105px;
}
.weapon_special_summerMage {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -838px;
+ background-position: -455px -763px;
width: 90px;
height: 105px;
}
.weapon_special_summerRogue {
background-image: url(spritesmith-main-5.png);
- background-position: -533px -629px;
+ background-position: -560px -584px;
width: 111px;
height: 90px;
}
.weapon_special_summerWarrior {
background-image: url(spritesmith-main-5.png);
- background-position: -645px -629px;
+ background-position: -743px 0px;
width: 111px;
height: 90px;
}
.back_special_takeThis {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -750px;
+ background-position: 0px -675px;
width: 114px;
height: 87px;
}
.body_special_takeThis {
background-image: url(spritesmith-main-5.png);
- background-position: -1001px -1035px;
+ background-position: -273px -1051px;
width: 90px;
height: 90px;
}
.broad_armor_special_takeThis {
background-image: url(spritesmith-main-5.png);
- background-position: -1092px -1035px;
+ background-position: -364px -1051px;
width: 90px;
height: 90px;
}
.head_special_takeThis {
background-image: url(spritesmith-main-5.png);
- background-position: -1186px 0px;
+ background-position: -455px -1051px;
width: 90px;
height: 90px;
}
.shield_special_takeThis {
background-image: url(spritesmith-main-5.png);
- background-position: -992px -728px;
+ background-position: -1037px -91px;
width: 93px;
height: 90px;
}
.shop_armor_special_takeThis {
background-image: url(spritesmith-main-5.png);
- background-position: -697px -1542px;
+ background-position: -1586px -1312px;
width: 40px;
height: 40px;
}
.shop_back_special_takeThis {
background-image: url(spritesmith-main-5.png);
- background-position: -656px -1542px;
+ background-position: -1586px -1271px;
width: 40px;
height: 40px;
}
.shop_body_special_takeThis {
background-image: url(spritesmith-main-5.png);
- background-position: -615px -1542px;
+ background-position: -1586px -1230px;
width: 40px;
height: 40px;
}
.shop_head_special_takeThis {
background-image: url(spritesmith-main-5.png);
- background-position: -574px -1542px;
+ background-position: -1586px -1189px;
width: 40px;
height: 40px;
}
.shop_shield_special_takeThis {
background-image: url(spritesmith-main-5.png);
- background-position: -533px -1542px;
+ background-position: -1586px -1148px;
width: 40px;
height: 40px;
}
.shop_weapon_special_takeThis {
background-image: url(spritesmith-main-5.png);
- background-position: -492px -1542px;
+ background-position: -1586px -1107px;
width: 40px;
height: 40px;
}
.slim_armor_special_takeThis {
background-image: url(spritesmith-main-5.png);
- background-position: -1186px -728px;
+ background-position: -1222px 0px;
width: 90px;
height: 90px;
}
.weapon_special_takeThis {
background-image: url(spritesmith-main-5.png);
- background-position: -1186px -819px;
+ background-position: -1222px -91px;
width: 90px;
height: 90px;
}
.broad_armor_special_candycane {
background-image: url(spritesmith-main-5.png);
- background-position: -1186px -910px;
+ background-position: -1222px -182px;
width: 90px;
height: 90px;
}
.broad_armor_special_ski {
background-image: url(spritesmith-main-5.png);
- background-position: -1186px -1001px;
+ background-position: -1222px -273px;
width: 90px;
height: 90px;
}
.broad_armor_special_snowflake {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -1126px;
+ background-position: -1222px -364px;
width: 90px;
height: 90px;
}
.broad_armor_special_winter2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -91px -1126px;
+ background-position: -1222px -455px;
width: 90px;
height: 90px;
}
.broad_armor_special_winter2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -182px -1126px;
+ background-position: -1222px -546px;
width: 90px;
height: 90px;
}
.broad_armor_special_winter2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -992px -273px;
+ background-position: -513px -869px;
width: 96px;
height: 90px;
}
.broad_armor_special_winter2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -364px -1126px;
+ background-position: -1222px -728px;
width: 90px;
height: 90px;
}
.broad_armor_special_winter2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -992px -637px;
+ background-position: -1037px 0px;
width: 93px;
height: 90px;
}
.broad_armor_special_winter2016Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -546px -1126px;
+ background-position: -1222px -910px;
width: 90px;
height: 90px;
}
.broad_armor_special_winter2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -637px -1126px;
+ background-position: -1222px -1001px;
width: 90px;
height: 90px;
}
.broad_armor_special_winter2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -728px -1126px;
+ background-position: 0px -1142px;
width: 90px;
height: 90px;
}
.broad_armor_special_yeti {
background-image: url(spritesmith-main-5.png);
- background-position: -819px -1126px;
+ background-position: -91px -1142px;
width: 90px;
height: 90px;
}
.head_special_candycane {
background-image: url(spritesmith-main-5.png);
- background-position: -910px -1126px;
+ background-position: -182px -1142px;
width: 90px;
height: 90px;
}
.head_special_nye {
background-image: url(spritesmith-main-5.png);
- background-position: -1001px -1126px;
+ background-position: -273px -1142px;
width: 90px;
height: 90px;
}
.head_special_nye2014 {
background-image: url(spritesmith-main-5.png);
- background-position: -1092px -1126px;
+ background-position: -364px -1142px;
width: 90px;
height: 90px;
}
.head_special_nye2015 {
background-image: url(spritesmith-main-5.png);
- background-position: -1183px -1126px;
+ background-position: -455px -1142px;
width: 90px;
height: 90px;
}
.head_special_ski {
background-image: url(spritesmith-main-5.png);
- background-position: -1277px 0px;
+ background-position: -546px -1142px;
width: 90px;
height: 90px;
}
.head_special_snowflake {
background-image: url(spritesmith-main-5.png);
- background-position: -1277px -91px;
+ background-position: -637px -1142px;
width: 90px;
height: 90px;
}
.head_special_winter2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1277px -182px;
+ background-position: -728px -1142px;
width: 90px;
height: 90px;
}
.head_special_winter2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1277px -273px;
+ background-position: -819px -1142px;
width: 90px;
height: 90px;
}
.head_special_winter2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -992px -364px;
+ background-position: -707px -869px;
width: 96px;
height: 90px;
}
.head_special_winter2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1277px -455px;
+ background-position: -1001px -1142px;
width: 90px;
height: 90px;
}
.head_special_winter2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -992px -819px;
+ background-position: -1037px -182px;
width: 93px;
height: 90px;
}
.head_special_winter2016Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1277px -637px;
+ background-position: -1183px -1142px;
width: 90px;
height: 90px;
}
.head_special_winter2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1277px -728px;
+ background-position: -1313px 0px;
width: 90px;
height: 90px;
}
.head_special_winter2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1277px -819px;
+ background-position: -1313px -91px;
width: 90px;
height: 90px;
}
.head_special_yeti {
background-image: url(spritesmith-main-5.png);
- background-position: -1277px -910px;
+ background-position: -1313px -182px;
width: 90px;
height: 90px;
}
.shield_special_ski {
background-image: url(spritesmith-main-5.png);
- background-position: -637px -838px;
+ background-position: 0px -869px;
width: 104px;
height: 90px;
}
.shield_special_snowflake {
background-image: url(spritesmith-main-5.png);
- background-position: -1277px -1092px;
+ background-position: -1313px -364px;
width: 90px;
height: 90px;
}
.shield_special_winter2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -1217px;
+ background-position: -1313px -455px;
width: 90px;
height: 90px;
}
.shield_special_winter2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -992px -182px;
+ background-position: -610px -869px;
width: 96px;
height: 90px;
}
.shield_special_winter2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -182px -1217px;
+ background-position: -1313px -637px;
width: 90px;
height: 90px;
}
.shield_special_winter2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -94px -944px;
+ background-position: -1037px -364px;
width: 93px;
height: 90px;
}
.shield_special_winter2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -364px -1217px;
+ background-position: -1313px -819px;
width: 90px;
height: 90px;
}
.shield_special_winter2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -455px -1217px;
+ background-position: -1313px -910px;
width: 90px;
height: 90px;
}
.shield_special_yeti {
background-image: url(spritesmith-main-5.png);
- background-position: -546px -1217px;
+ background-position: -1313px -1001px;
width: 90px;
height: 90px;
}
.shop_armor_special_candycane {
background-image: url(spritesmith-main-5.png);
- background-position: -451px -1542px;
+ background-position: -1586px -1066px;
width: 40px;
height: 40px;
}
.shop_armor_special_ski {
background-image: url(spritesmith-main-5.png);
- background-position: -410px -1542px;
+ background-position: -1586px -1025px;
width: 40px;
height: 40px;
}
.shop_armor_special_snowflake {
background-image: url(spritesmith-main-5.png);
- background-position: -369px -1542px;
+ background-position: -1586px -984px;
width: 40px;
height: 40px;
}
.shop_armor_special_winter2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -328px -1542px;
+ background-position: -1586px -943px;
width: 40px;
height: 40px;
}
.shop_armor_special_winter2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -287px -1542px;
+ background-position: -1586px -902px;
width: 40px;
height: 40px;
}
.shop_armor_special_winter2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -246px -1542px;
+ background-position: -1586px -861px;
width: 40px;
height: 40px;
}
.shop_armor_special_winter2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -205px -1542px;
+ background-position: -1586px -820px;
width: 40px;
height: 40px;
}
.shop_armor_special_winter2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -164px -1542px;
+ background-position: -1586px -451px;
width: 40px;
height: 40px;
}
.shop_armor_special_winter2016Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -123px -1542px;
+ background-position: -1586px -410px;
width: 40px;
height: 40px;
}
.shop_armor_special_winter2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -82px -1542px;
+ background-position: -1586px -369px;
width: 40px;
height: 40px;
}
.shop_armor_special_winter2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -41px -1542px;
+ background-position: -1586px -328px;
width: 40px;
height: 40px;
}
.shop_armor_special_yeti {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -1542px;
+ background-position: -1586px -287px;
width: 40px;
height: 40px;
}
.shop_head_special_candycane {
background-image: url(spritesmith-main-5.png);
- background-position: -1244px -1490px;
+ background-position: -1586px -246px;
width: 40px;
height: 40px;
}
.shop_head_special_nye {
background-image: url(spritesmith-main-5.png);
- background-position: -1203px -1490px;
+ background-position: -1586px -205px;
width: 40px;
height: 40px;
}
.shop_head_special_nye2014 {
background-image: url(spritesmith-main-5.png);
- background-position: -1162px -1490px;
+ background-position: -1586px -164px;
width: 40px;
height: 40px;
}
.shop_head_special_nye2015 {
background-image: url(spritesmith-main-5.png);
- background-position: -1121px -1490px;
+ background-position: -1078px -910px;
width: 40px;
height: 40px;
}
.shop_head_special_ski {
background-image: url(spritesmith-main-5.png);
- background-position: -1080px -1490px;
+ background-position: -1037px -910px;
width: 40px;
height: 40px;
}
.shop_head_special_snowflake {
background-image: url(spritesmith-main-5.png);
- background-position: -1039px -1490px;
+ background-position: -1172px -1001px;
width: 40px;
height: 40px;
}
.shop_head_special_winter2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -998px -1490px;
+ background-position: -1131px -1001px;
width: 40px;
height: 40px;
}
.shop_head_special_winter2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -957px -1490px;
+ background-position: -1263px -1092px;
width: 40px;
height: 40px;
}
.shop_head_special_winter2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -318px -750px;
+ background-position: -1222px -1092px;
width: 40px;
height: 40px;
}
.shop_head_special_winter2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -277px -750px;
+ background-position: -1354px -1183px;
width: 40px;
height: 40px;
}
.shop_head_special_winter2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -236px -750px;
+ background-position: -1313px -1183px;
width: 40px;
height: 40px;
}
.shop_head_special_winter2016Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -568px -304px;
+ background-position: -1445px -1274px;
width: 40px;
height: 40px;
}
.shop_head_special_winter2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -568px -263px;
+ background-position: -1668px -861px;
width: 40px;
height: 40px;
}
.shop_head_special_winter2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1558px -1624px;
+ background-position: -1668px -533px;
width: 40px;
height: 40px;
}
.shop_head_special_yeti {
background-image: url(spritesmith-main-5.png);
- background-position: -1230px -1624px;
+ background-position: -1668px -492px;
width: 40px;
height: 40px;
}
.shop_shield_special_ski {
background-image: url(spritesmith-main-5.png);
- background-position: -1189px -1624px;
+ background-position: -1668px -451px;
width: 40px;
height: 40px;
}
.shop_shield_special_snowflake {
background-image: url(spritesmith-main-5.png);
- background-position: -1148px -1624px;
+ background-position: -1668px -410px;
width: 40px;
height: 40px;
}
.shop_shield_special_winter2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1107px -1624px;
+ background-position: -1668px -369px;
width: 40px;
height: 40px;
}
.shop_shield_special_winter2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1066px -1624px;
+ background-position: -1668px -246px;
width: 40px;
height: 40px;
}
.shop_shield_special_winter2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -943px -1624px;
+ background-position: -1668px -205px;
width: 40px;
height: 40px;
}
.shop_shield_special_winter2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -902px -1624px;
+ background-position: -1668px -164px;
width: 40px;
height: 40px;
}
.shop_shield_special_winter2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -861px -1624px;
+ background-position: -1668px -123px;
width: 40px;
height: 40px;
}
.shop_shield_special_winter2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -820px -1624px;
+ background-position: -1668px -82px;
width: 40px;
height: 40px;
}
.shop_shield_special_yeti {
background-image: url(spritesmith-main-5.png);
- background-position: -779px -1624px;
+ background-position: -1668px -41px;
width: 40px;
height: 40px;
}
.shop_weapon_special_candycane {
background-image: url(spritesmith-main-5.png);
- background-position: -738px -1624px;
+ background-position: -1668px 0px;
width: 40px;
height: 40px;
}
.shop_weapon_special_ski {
background-image: url(spritesmith-main-5.png);
- background-position: -697px -1624px;
+ background-position: -1599px -1602px;
width: 40px;
height: 40px;
}
.shop_weapon_special_snowflake {
background-image: url(spritesmith-main-5.png);
- background-position: -656px -1624px;
+ background-position: -1230px -1602px;
width: 40px;
height: 40px;
}
.shop_weapon_special_winter2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -615px -1624px;
+ background-position: -1189px -1602px;
width: 40px;
height: 40px;
}
.shop_weapon_special_winter2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -533px -1624px;
+ background-position: -1148px -1602px;
width: 40px;
height: 40px;
}
.shop_weapon_special_winter2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -492px -1624px;
+ background-position: -1107px -1602px;
width: 40px;
height: 40px;
}
.shop_weapon_special_winter2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -451px -1624px;
+ background-position: -1066px -1602px;
width: 40px;
height: 40px;
}
.shop_weapon_special_winter2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -123px -1624px;
+ background-position: -1025px -1602px;
width: 40px;
height: 40px;
}
.shop_weapon_special_winter2016Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -82px -1624px;
+ background-position: -984px -1602px;
width: 40px;
height: 40px;
}
.shop_weapon_special_winter2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -41px -1624px;
+ background-position: -820px -1602px;
width: 40px;
height: 40px;
}
.shop_weapon_special_winter2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -1624px;
+ background-position: -861px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_special_yeti {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1558px;
+ background-position: -615px -1602px;
width: 40px;
height: 40px;
}
.slim_armor_special_candycane {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -910px;
+ background-position: -1495px -182px;
width: 90px;
height: 90px;
}
.slim_armor_special_ski {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -1001px;
+ background-position: -1495px -273px;
width: 90px;
height: 90px;
}
.slim_armor_special_snowflake {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -1092px;
+ background-position: -1495px -364px;
width: 90px;
height: 90px;
}
.slim_armor_special_winter2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -1183px;
+ background-position: -1495px -455px;
width: 90px;
height: 90px;
}
.slim_armor_special_winter2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -1274px;
+ background-position: -1495px -546px;
width: 90px;
height: 90px;
}
.slim_armor_special_winter2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -992px -455px;
+ background-position: -804px -869px;
width: 96px;
height: 90px;
}
.slim_armor_special_winter2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -91px -1399px;
+ background-position: -1495px -728px;
width: 90px;
height: 90px;
}
.slim_armor_special_winter2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -944px;
+ background-position: -1037px -273px;
width: 93px;
height: 90px;
}
.slim_armor_special_winter2016Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -273px -1399px;
+ background-position: -1495px -910px;
width: 90px;
height: 90px;
}
.slim_armor_special_winter2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -364px -1399px;
+ background-position: -1495px -1001px;
width: 90px;
height: 90px;
}
.slim_armor_special_winter2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -455px -1399px;
+ background-position: -1495px -1092px;
width: 90px;
height: 90px;
}
.slim_armor_special_yeti {
background-image: url(spritesmith-main-5.png);
- background-position: -546px -1399px;
+ background-position: -1495px -1183px;
width: 90px;
height: 90px;
}
.weapon_special_candycane {
background-image: url(spritesmith-main-5.png);
- background-position: -637px -1399px;
+ background-position: -1495px -1274px;
width: 90px;
height: 90px;
}
.weapon_special_ski {
background-image: url(spritesmith-main-5.png);
- background-position: -728px -1399px;
+ background-position: 0px -1415px;
width: 90px;
height: 90px;
}
.weapon_special_snowflake {
background-image: url(spritesmith-main-5.png);
- background-position: -819px -1399px;
+ background-position: -91px -1415px;
width: 90px;
height: 90px;
}
.weapon_special_winter2015Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -910px -1399px;
+ background-position: -182px -1415px;
width: 90px;
height: 90px;
}
.weapon_special_winter2015Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1001px -1399px;
+ background-position: -273px -1415px;
width: 90px;
height: 90px;
}
.weapon_special_winter2015Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -992px -546px;
+ background-position: -901px -869px;
width: 96px;
height: 90px;
}
.weapon_special_winter2015Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1183px -1399px;
+ background-position: -455px -1415px;
width: 90px;
height: 90px;
}
.weapon_special_winter2016Healer {
background-image: url(spritesmith-main-5.png);
- background-position: -188px -944px;
+ background-position: -1037px -455px;
width: 93px;
height: 90px;
}
.weapon_special_winter2016Mage {
background-image: url(spritesmith-main-5.png);
- background-position: -1365px -1399px;
+ background-position: -637px -1415px;
width: 90px;
height: 90px;
}
.weapon_special_winter2016Rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -1456px -1399px;
+ background-position: -728px -1415px;
width: 90px;
height: 90px;
}
.weapon_special_winter2016Warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px 0px;
+ background-position: -819px -1415px;
width: 90px;
height: 90px;
}
.weapon_special_yeti {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -91px;
+ background-position: -910px -1415px;
width: 90px;
height: 90px;
}
.back_special_wondercon_black {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -182px;
+ background-position: -1001px -1415px;
width: 90px;
height: 90px;
}
.back_special_wondercon_red {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -273px;
+ background-position: -1092px -1415px;
width: 90px;
height: 90px;
}
.body_special_wondercon_black {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -364px;
+ background-position: -1183px -1415px;
width: 90px;
height: 90px;
}
.body_special_wondercon_gold {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -455px;
+ background-position: -1274px -1415px;
width: 90px;
height: 90px;
}
.body_special_wondercon_red {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -546px;
+ background-position: -1365px -1415px;
width: 90px;
height: 90px;
}
.eyewear_special_wondercon_black {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -637px;
+ background-position: -1495px -91px;
width: 90px;
height: 90px;
}
.eyewear_special_wondercon_red {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -728px;
+ background-position: -1495px 0px;
width: 90px;
height: 90px;
}
.shop_back_special_wondercon_black {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1517px;
+ background-position: -697px -1602px;
width: 40px;
height: 40px;
}
.shop_back_special_wondercon_red {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1476px;
+ background-position: -738px -1602px;
width: 40px;
height: 40px;
}
.shop_body_special_wondercon_black {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1271px;
+ background-position: -779px -1602px;
width: 40px;
height: 40px;
}
.shop_body_special_wondercon_gold {
background-image: url(spritesmith-main-5.png);
- background-position: -164px -1583px;
+ background-position: -1668px -1025px;
width: 40px;
height: 40px;
}
.shop_body_special_wondercon_red {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1353px;
+ background-position: -861px -1602px;
width: 40px;
height: 40px;
}
.shop_eyewear_special_wondercon_black {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1394px;
+ background-position: -902px -1602px;
width: 40px;
height: 40px;
}
.shop_eyewear_special_wondercon_red {
background-image: url(spritesmith-main-5.png);
- background-position: -1641px -1435px;
+ background-position: -943px -1602px;
width: 40px;
height: 40px;
}
.eyewear_special_blackTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -910px;
+ background-position: -1274px -1324px;
width: 90px;
height: 90px;
}
.customize-option.eyewear_special_blackTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1575px -925px;
+ background-position: -1299px -1339px;
width: 60px;
height: 60px;
}
.eyewear_special_blueTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -819px;
+ background-position: -1183px -1324px;
width: 90px;
height: 90px;
}
.customize-option.eyewear_special_blueTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1575px -834px;
+ background-position: -1208px -1339px;
width: 60px;
height: 60px;
}
.eyewear_special_greenTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -819px;
+ background-position: -1092px -1324px;
width: 90px;
height: 90px;
}
.customize-option.eyewear_special_greenTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1484px -834px;
+ background-position: -1117px -1339px;
width: 60px;
height: 60px;
}
.eyewear_special_pinkTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -728px;
+ background-position: -1001px -1324px;
width: 90px;
height: 90px;
}
.customize-option.eyewear_special_pinkTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1484px -743px;
+ background-position: -1026px -1339px;
width: 60px;
height: 60px;
}
.eyewear_special_redTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -637px;
+ background-position: -910px -1324px;
width: 90px;
height: 90px;
}
.customize-option.eyewear_special_redTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1484px -652px;
+ background-position: -935px -1339px;
width: 60px;
height: 60px;
}
.eyewear_special_whiteTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -1001px;
+ background-position: -819px -1324px;
width: 90px;
height: 90px;
}
.customize-option.eyewear_special_whiteTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1575px -1016px;
+ background-position: -844px -1339px;
width: 60px;
height: 60px;
}
.eyewear_special_yellowTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -455px;
+ background-position: -728px -1324px;
width: 90px;
height: 90px;
}
.customize-option.eyewear_special_yellowTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -1484px -470px;
+ background-position: -753px -1339px;
width: 60px;
height: 60px;
}
.shop_eyewear_special_blackTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -164px -1624px;
+ background-position: -1271px -1602px;
width: 40px;
height: 40px;
}
.shop_eyewear_special_blueTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -205px -1624px;
+ background-position: -1312px -1602px;
width: 40px;
height: 40px;
}
.shop_eyewear_special_greenTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -246px -1624px;
+ background-position: -1353px -1602px;
width: 40px;
height: 40px;
}
.shop_eyewear_special_pinkTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -287px -1624px;
+ background-position: -1394px -1602px;
width: 40px;
height: 40px;
}
.shop_eyewear_special_redTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -328px -1624px;
+ background-position: -1435px -1602px;
width: 40px;
height: 40px;
}
.shop_eyewear_special_whiteTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -369px -1624px;
+ background-position: -1476px -1602px;
width: 40px;
height: 40px;
}
.shop_eyewear_special_yellowTopFrame {
background-image: url(spritesmith-main-5.png);
- background-position: -410px -1624px;
+ background-position: -1558px -1602px;
width: 40px;
height: 40px;
}
.head_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -364px;
+ background-position: -637px -1324px;
width: 90px;
height: 90px;
}
.customize-option.head_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -1484px -379px;
+ background-position: -662px -1339px;
width: 60px;
height: 60px;
}
.head_healer_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -273px;
+ background-position: -546px -1324px;
width: 90px;
height: 90px;
}
.head_healer_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -182px;
+ background-position: -455px -1324px;
width: 90px;
height: 90px;
}
.head_healer_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px -91px;
+ background-position: -364px -1324px;
width: 90px;
height: 90px;
}
.head_healer_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -1459px 0px;
+ background-position: -273px -1324px;
width: 90px;
height: 90px;
}
.head_healer_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -1365px -1308px;
+ background-position: -182px -1324px;
width: 90px;
height: 90px;
}
.head_rogue_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -1274px -1308px;
+ background-position: -91px -1324px;
width: 90px;
height: 90px;
}
.head_rogue_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -1183px -1308px;
+ background-position: 0px -1324px;
width: 90px;
height: 90px;
}
.head_rogue_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -1092px -1308px;
+ background-position: -1404px -1183px;
width: 90px;
height: 90px;
}
.head_rogue_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -1001px -1308px;
+ background-position: -1404px -1092px;
width: 90px;
height: 90px;
}
.head_rogue_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -910px -1308px;
+ background-position: -1404px -1001px;
width: 90px;
height: 90px;
}
.head_special_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -819px -1308px;
+ background-position: -1404px -910px;
width: 90px;
height: 90px;
}
.head_special_fireCoralCirclet {
background-image: url(spritesmith-main-5.png);
- background-position: -728px -1308px;
+ background-position: -1404px -819px;
width: 90px;
height: 90px;
}
.head_warrior_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -637px -1308px;
+ background-position: -1404px -728px;
width: 90px;
height: 90px;
}
.head_warrior_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -546px -1308px;
+ background-position: -1404px -637px;
width: 90px;
height: 90px;
}
.head_warrior_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -455px -1308px;
+ background-position: -1404px -546px;
width: 90px;
height: 90px;
}
.head_warrior_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -364px -1308px;
+ background-position: -1404px -455px;
width: 90px;
height: 90px;
}
.head_warrior_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -273px -1308px;
+ background-position: -1404px -364px;
width: 90px;
height: 90px;
}
.head_wizard_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -182px -1308px;
+ background-position: -1404px -273px;
width: 90px;
height: 90px;
}
.head_wizard_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -91px -1308px;
+ background-position: -1404px -182px;
width: 90px;
height: 90px;
}
.head_wizard_3 {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -1308px;
+ background-position: -1404px -91px;
width: 90px;
height: 90px;
}
.head_wizard_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px -1183px;
+ background-position: -1404px 0px;
width: 90px;
height: 90px;
}
.head_wizard_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px -1092px;
+ background-position: -1274px -1233px;
width: 90px;
height: 90px;
}
.shop_head_healer_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -359px -750px;
+ background-position: -236px -675px;
width: 40px;
height: 40px;
}
.shop_head_healer_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -400px -750px;
+ background-position: -277px -675px;
width: 40px;
height: 40px;
}
.shop_head_healer_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -441px -750px;
+ background-position: -318px -675px;
width: 40px;
height: 40px;
}
.shop_head_healer_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -482px -750px;
+ background-position: -359px -675px;
width: 40px;
height: 40px;
}
.shop_head_healer_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -523px -750px;
+ background-position: -400px -675px;
width: 40px;
height: 40px;
}
.shop_head_rogue_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -564px -750px;
+ background-position: -441px -675px;
width: 40px;
height: 40px;
}
.shop_head_rogue_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -605px -750px;
+ background-position: -482px -675px;
width: 40px;
height: 40px;
}
.shop_head_rogue_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -646px -750px;
+ background-position: -523px -675px;
width: 40px;
height: 40px;
}
.shop_head_rogue_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -687px -750px;
+ background-position: -564px -675px;
width: 40px;
height: 40px;
}
.shop_head_rogue_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -728px -750px;
+ background-position: -605px -675px;
width: 40px;
height: 40px;
}
.shop_head_special_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -769px -750px;
+ background-position: -646px -675px;
width: 40px;
height: 40px;
}
.shop_head_special_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -810px -750px;
+ background-position: -687px -675px;
width: 40px;
height: 40px;
}
.shop_head_special_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -851px -750px;
+ background-position: -728px -675px;
width: 40px;
height: 40px;
}
.shop_head_special_fireCoralCirclet {
background-image: url(spritesmith-main-5.png);
- background-position: -950px -838px;
+ background-position: -769px -675px;
width: 40px;
height: 40px;
}
.shop_head_warrior_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -950px -879px;
+ background-position: -810px -675px;
width: 40px;
height: 40px;
}
.shop_head_warrior_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -588px -1490px;
+ background-position: -1370px -1506px;
width: 40px;
height: 40px;
}
.shop_head_warrior_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -629px -1490px;
+ background-position: -1411px -1506px;
width: 40px;
height: 40px;
}
.shop_head_warrior_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -670px -1490px;
+ background-position: -1452px -1506px;
width: 40px;
height: 40px;
}
.shop_head_warrior_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -711px -1490px;
+ background-position: -1493px -1506px;
width: 40px;
height: 40px;
}
.shop_head_wizard_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -752px -1490px;
+ background-position: -1534px -1506px;
width: 40px;
height: 40px;
}
.shop_head_wizard_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -793px -1490px;
+ background-position: -1586px 0px;
width: 40px;
height: 40px;
}
.shop_head_wizard_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -834px -1490px;
+ background-position: -1586px -41px;
width: 40px;
height: 40px;
}
.shop_head_wizard_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -875px -1490px;
+ background-position: -1586px -82px;
width: 40px;
height: 40px;
}
.shop_head_wizard_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -916px -1490px;
+ background-position: -1586px -123px;
width: 40px;
height: 40px;
}
.headAccessory_special_bearEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px -1001px;
+ background-position: -1183px -1233px;
width: 90px;
height: 90px;
}
.customize-option.headAccessory_special_bearEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1393px -1016px;
+ background-position: -1208px -1248px;
width: 60px;
height: 60px;
}
.headAccessory_special_cactusEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px -910px;
+ background-position: -1092px -1233px;
width: 90px;
height: 90px;
}
.customize-option.headAccessory_special_cactusEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1393px -925px;
+ background-position: -1117px -1248px;
width: 60px;
height: 60px;
}
.headAccessory_special_foxEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px -819px;
+ background-position: -1001px -1233px;
width: 90px;
height: 90px;
}
.customize-option.headAccessory_special_foxEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1393px -834px;
+ background-position: -1026px -1248px;
width: 60px;
height: 60px;
}
.headAccessory_special_lionEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px -728px;
+ background-position: -910px -1233px;
width: 90px;
height: 90px;
}
.customize-option.headAccessory_special_lionEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1393px -743px;
+ background-position: -935px -1248px;
width: 60px;
height: 60px;
}
.headAccessory_special_pandaEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px -637px;
+ background-position: -819px -1233px;
width: 90px;
height: 90px;
}
.customize-option.headAccessory_special_pandaEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1393px -652px;
+ background-position: -844px -1248px;
width: 60px;
height: 60px;
}
.headAccessory_special_pigEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px -546px;
+ background-position: -728px -1233px;
width: 90px;
height: 90px;
}
.customize-option.headAccessory_special_pigEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1393px -561px;
+ background-position: -753px -1248px;
width: 60px;
height: 60px;
}
.headAccessory_special_tigerEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px -455px;
+ background-position: -637px -1233px;
width: 90px;
height: 90px;
}
.customize-option.headAccessory_special_tigerEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1393px -470px;
+ background-position: -662px -1248px;
width: 60px;
height: 60px;
}
.headAccessory_special_wolfEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px -364px;
+ background-position: -546px -1233px;
width: 90px;
height: 90px;
}
.customize-option.headAccessory_special_wolfEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1393px -379px;
+ background-position: -571px -1248px;
width: 60px;
height: 60px;
}
.shop_headAccessory_special_bearEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1285px -1490px;
+ background-position: -1586px -492px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_cactusEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1326px -1490px;
+ background-position: -1586px -533px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_foxEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1367px -1490px;
+ background-position: -1586px -574px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_lionEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1408px -1490px;
+ background-position: -1586px -615px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_pandaEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1449px -1490px;
+ background-position: -1586px -656px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_pigEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1490px -1490px;
+ background-position: -1586px -697px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_tigerEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1531px -1490px;
+ background-position: -1586px -738px;
width: 40px;
height: 40px;
}
.shop_headAccessory_special_wolfEars {
background-image: url(spritesmith-main-5.png);
- background-position: -1572px -1490px;
+ background-position: -1586px -779px;
width: 40px;
height: 40px;
}
.shield_healer_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px -273px;
+ background-position: -455px -1233px;
width: 90px;
height: 90px;
}
.shield_healer_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px -182px;
+ background-position: -364px -1233px;
width: 90px;
height: 90px;
}
.shield_healer_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px -91px;
+ background-position: -273px -1233px;
width: 90px;
height: 90px;
}
.shield_healer_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -1368px 0px;
+ background-position: -182px -1233px;
width: 90px;
height: 90px;
}
.shield_healer_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -1274px -1217px;
+ background-position: -91px -1233px;
width: 90px;
height: 90px;
}
.shield_rogue_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -1183px -1217px;
+ background-position: 0px -1233px;
width: 90px;
height: 90px;
}
.shield_rogue_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -846px -838px;
+ background-position: -105px -869px;
width: 103px;
height: 90px;
}
.shield_rogue_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -742px -838px;
+ background-position: -209px -869px;
width: 103px;
height: 90px;
}
.shield_rogue_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -115px -538px;
+ background-position: 0px -493px;
width: 114px;
height: 90px;
}
.shield_rogue_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -992px -91px;
+ background-position: -416px -869px;
width: 96px;
height: 90px;
}
.shield_rogue_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -230px -538px;
+ background-position: -230px -493px;
width: 114px;
height: 90px;
}
.shield_rogue_6 {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -538px;
+ background-position: -115px -493px;
width: 114px;
height: 90px;
}
.shield_special_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -1186px -637px;
+ background-position: -637px -1051px;
width: 90px;
height: 90px;
}
.shield_special_goldenknight {
background-image: url(spritesmith-main-5.png);
- background-position: -789px -91px;
+ background-position: -631px -273px;
width: 111px;
height: 90px;
}
.shield_special_moonpearlShield {
background-image: url(spritesmith-main-5.png);
- background-position: -1186px -455px;
+ background-position: -946px -773px;
width: 90px;
height: 90px;
}
.shield_warrior_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -1186px -364px;
+ background-position: -946px -682px;
width: 90px;
height: 90px;
}
.shield_warrior_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -1186px -273px;
+ background-position: -946px -591px;
width: 90px;
height: 90px;
}
.shield_warrior_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -1186px -182px;
+ background-position: -946px -500px;
width: 90px;
height: 90px;
}
.shield_warrior_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -646px -944px;
+ background-position: -946px -409px;
width: 90px;
height: 90px;
}
.shield_warrior_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -555px -944px;
+ background-position: -946px -318px;
width: 90px;
height: 90px;
}
.shop_shield_healer_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -820px -1542px;
+ background-position: -82px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_healer_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -861px -1542px;
+ background-position: -123px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_healer_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -902px -1542px;
+ background-position: -164px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_healer_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -943px -1542px;
+ background-position: -205px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_healer_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -984px -1542px;
+ background-position: -246px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_rogue_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -1025px -1542px;
+ background-position: -287px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_rogue_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -1066px -1542px;
+ background-position: -328px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_rogue_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -1107px -1542px;
+ background-position: -369px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_rogue_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -1148px -1542px;
+ background-position: -410px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_rogue_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -1189px -1542px;
+ background-position: -451px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_rogue_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -1230px -1542px;
+ background-position: -492px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_rogue_6 {
background-image: url(spritesmith-main-5.png);
- background-position: -1271px -1542px;
+ background-position: -533px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_special_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -1312px -1542px;
+ background-position: -574px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_special_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -1353px -1542px;
+ background-position: -615px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_special_goldenknight {
background-image: url(spritesmith-main-5.png);
- background-position: -1394px -1542px;
+ background-position: -656px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_special_moonpearlShield {
background-image: url(spritesmith-main-5.png);
- background-position: -1435px -1542px;
+ background-position: -697px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_warrior_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -1476px -1542px;
+ background-position: -738px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_warrior_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -1517px -1542px;
+ background-position: -779px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_warrior_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -1558px -1542px;
+ background-position: -820px -1561px;
width: 40px;
height: 40px;
}
.shop_shield_warrior_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -1599px -1542px;
+ background-position: -1404px -1274px;
width: 40px;
height: 40px;
}
.shop_shield_warrior_5 {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -1583px;
+ background-position: -902px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_healer_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -41px -1583px;
+ background-position: -943px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_healer_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -82px -1583px;
+ background-position: -984px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_healer_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -123px -1583px;
+ background-position: -1025px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_healer_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -1682px -246px;
+ background-position: -1066px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_healer_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -205px -1583px;
+ background-position: -1107px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_healer_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -246px -1583px;
+ background-position: -1148px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_healer_6 {
background-image: url(spritesmith-main-5.png);
- background-position: -287px -1583px;
+ background-position: -1189px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_rogue_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -328px -1583px;
+ background-position: -1230px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_rogue_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -369px -1583px;
+ background-position: -1271px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_rogue_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -410px -1583px;
+ background-position: -1312px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_rogue_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -451px -1583px;
+ background-position: -1353px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_rogue_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -492px -1583px;
+ background-position: -1394px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_rogue_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -533px -1583px;
+ background-position: -1435px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_rogue_6 {
background-image: url(spritesmith-main-5.png);
- background-position: -574px -1583px;
+ background-position: -1476px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_special_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -615px -1583px;
+ background-position: -1517px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_special_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -656px -1583px;
+ background-position: -1558px -1561px;
width: 40px;
height: 40px;
}
.shop_weapon_special_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -697px -1583px;
+ background-position: -1627px 0px;
width: 40px;
height: 40px;
}
.shop_weapon_special_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -738px -1583px;
+ background-position: -1627px -41px;
width: 40px;
height: 40px;
}
.shop_weapon_special_critical {
background-image: url(spritesmith-main-5.png);
- background-position: -779px -1583px;
+ background-position: -1627px -82px;
width: 40px;
height: 40px;
}
.shop_weapon_special_tridentOfCrashingTides {
background-image: url(spritesmith-main-5.png);
- background-position: -820px -1583px;
+ background-position: -1627px -123px;
width: 40px;
height: 40px;
}
.shop_weapon_warrior_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -861px -1583px;
+ background-position: -1627px -164px;
width: 40px;
height: 40px;
}
.shop_weapon_warrior_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -902px -1583px;
+ background-position: -1627px -205px;
width: 40px;
height: 40px;
}
.shop_weapon_warrior_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -943px -1583px;
+ background-position: -1627px -246px;
width: 40px;
height: 40px;
}
.shop_weapon_warrior_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -984px -1583px;
+ background-position: -1627px -287px;
width: 40px;
height: 40px;
}
.shop_weapon_warrior_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -1025px -1583px;
+ background-position: -1627px -328px;
width: 40px;
height: 40px;
}
.shop_weapon_warrior_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -1066px -1583px;
+ background-position: -1627px -369px;
width: 40px;
height: 40px;
}
.shop_weapon_warrior_6 {
background-image: url(spritesmith-main-5.png);
- background-position: -1107px -1583px;
+ background-position: -1627px -410px;
width: 40px;
height: 40px;
}
.shop_weapon_wizard_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -1148px -1583px;
+ background-position: -1627px -451px;
width: 40px;
height: 40px;
}
.shop_weapon_wizard_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -1189px -1583px;
+ background-position: -1627px -492px;
width: 40px;
height: 40px;
}
.shop_weapon_wizard_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -1230px -1583px;
+ background-position: -1627px -533px;
width: 40px;
height: 40px;
}
.shop_weapon_wizard_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -1271px -1583px;
+ background-position: -1627px -574px;
width: 40px;
height: 40px;
}
.shop_weapon_wizard_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -1312px -1583px;
+ background-position: -1627px -615px;
width: 40px;
height: 40px;
}
.shop_weapon_wizard_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -1353px -1583px;
+ background-position: -1627px -656px;
width: 40px;
height: 40px;
}
.shop_weapon_wizard_6 {
background-image: url(spritesmith-main-5.png);
- background-position: -1394px -1583px;
+ background-position: -1627px -697px;
width: 40px;
height: 40px;
}
.weapon_healer_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -464px -944px;
+ background-position: -1037px -819px;
width: 90px;
height: 90px;
}
.weapon_healer_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -373px -944px;
+ background-position: -1037px -728px;
width: 90px;
height: 90px;
}
.weapon_healer_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -282px -944px;
+ background-position: -1037px -637px;
width: 90px;
height: 90px;
}
.weapon_healer_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -901px -742px;
+ background-position: -1037px -546px;
width: 90px;
height: 90px;
}
.weapon_healer_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -1274px -1399px;
+ background-position: -546px -1415px;
width: 90px;
height: 90px;
}
.weapon_healer_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -1092px -1399px;
+ background-position: -364px -1415px;
width: 90px;
height: 90px;
}
.weapon_healer_6 {
background-image: url(spritesmith-main-5.png);
- background-position: -182px -1399px;
+ background-position: -1495px -819px;
width: 90px;
height: 90px;
}
.weapon_rogue_0 {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -1399px;
+ background-position: -1495px -637px;
width: 90px;
height: 90px;
}
.weapon_rogue_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -1092px -1217px;
+ background-position: -1365px -1324px;
width: 90px;
height: 90px;
}
.weapon_rogue_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -1001px -1217px;
+ background-position: -1313px -1092px;
width: 90px;
height: 90px;
}
.weapon_rogue_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -910px -1217px;
+ background-position: -1313px -728px;
width: 90px;
height: 90px;
}
.weapon_rogue_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -819px -1217px;
+ background-position: -1313px -546px;
width: 90px;
height: 90px;
}
.weapon_rogue_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -728px -1217px;
+ background-position: -1313px -273px;
width: 90px;
height: 90px;
}
.weapon_rogue_6 {
background-image: url(spritesmith-main-5.png);
- background-position: -637px -1217px;
+ background-position: -1092px -1142px;
width: 90px;
height: 90px;
}
.weapon_special_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -992px 0px;
+ background-position: -313px -869px;
width: 102px;
height: 90px;
}
.weapon_special_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -91px -1217px;
+ background-position: -1222px -819px;
width: 90px;
height: 90px;
}
.weapon_special_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -1277px -1001px;
+ background-position: -1222px -637px;
width: 90px;
height: 90px;
}
.weapon_special_tridentOfCrashingTides {
background-image: url(spritesmith-main-5.png);
- background-position: -1277px -546px;
+ background-position: -1092px -1051px;
width: 90px;
height: 90px;
}
.weapon_warrior_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -1277px -364px;
+ background-position: -1001px -1051px;
width: 90px;
height: 90px;
}
.weapon_warrior_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -455px -1126px;
+ background-position: -910px -1051px;
width: 90px;
height: 90px;
}
.weapon_warrior_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -273px -1126px;
+ background-position: -819px -1051px;
width: 90px;
height: 90px;
}
.weapon_warrior_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -1186px -546px;
+ background-position: -728px -1051px;
width: 90px;
height: 90px;
}
.weapon_warrior_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -1186px -91px;
+ background-position: -546px -1051px;
width: 90px;
height: 90px;
}
.weapon_warrior_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -910px -1035px;
+ background-position: -182px -1051px;
width: 90px;
height: 90px;
}
.weapon_warrior_6 {
background-image: url(spritesmith-main-5.png);
- background-position: -819px -1035px;
+ background-position: -91px -1051px;
width: 90px;
height: 90px;
}
.weapon_wizard_0 {
background-image: url(spritesmith-main-5.png);
- background-position: -728px -1035px;
+ background-position: 0px -1051px;
width: 90px;
height: 90px;
}
.weapon_wizard_1 {
background-image: url(spritesmith-main-5.png);
- background-position: -637px -1035px;
+ background-position: -1131px -910px;
width: 90px;
height: 90px;
}
.weapon_wizard_2 {
background-image: url(spritesmith-main-5.png);
- background-position: -546px -1035px;
+ background-position: -1131px -819px;
width: 90px;
height: 90px;
}
.weapon_wizard_3 {
background-image: url(spritesmith-main-5.png);
- background-position: -455px -1035px;
+ background-position: -1131px -728px;
width: 90px;
height: 90px;
}
.weapon_wizard_4 {
background-image: url(spritesmith-main-5.png);
- background-position: -364px -1035px;
+ background-position: -1131px -637px;
width: 90px;
height: 90px;
}
.weapon_wizard_5 {
background-image: url(spritesmith-main-5.png);
- background-position: -91px -1035px;
+ background-position: -1131px -364px;
width: 90px;
height: 90px;
}
.weapon_wizard_6 {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -1035px;
+ background-position: -1131px -273px;
width: 90px;
height: 90px;
}
.GrimReaper {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -1194px;
+ background-position: -569px -493px;
width: 57px;
height: 66px;
}
.Pet_Currency_Gem {
background-image: url(spritesmith-main-5.png);
- background-position: -447px -384px;
+ background-position: -1495px -1365px;
width: 45px;
height: 39px;
}
.Pet_Currency_Gem1x {
background-image: url(spritesmith-main-5.png);
- background-position: -1682px -354px;
+ background-position: -1668px -1133px;
width: 15px;
height: 13px;
}
.Pet_Currency_Gem2x {
background-image: url(spritesmith-main-5.png);
- background-position: -1682px -327px;
+ background-position: -1668px -1106px;
width: 30px;
height: 26px;
}
.PixelPaw-Gold {
background-image: url(spritesmith-main-5.png);
- background-position: -847px -688px;
+ background-position: -528px -439px;
width: 51px;
height: 51px;
}
.PixelPaw {
background-image: url(spritesmith-main-5.png);
- background-position: -713px -576px;
+ background-position: -580px -1506px;
width: 51px;
height: 51px;
}
.PixelPaw002 {
background-image: url(spritesmith-main-5.png);
- background-position: -392px -151px;
+ background-position: -632px -1506px;
width: 51px;
height: 51px;
}
.avatar_floral_healer {
background-image: url(spritesmith-main-5.png);
- background-position: -789px -182px;
+ background-position: -743px -91px;
width: 99px;
height: 99px;
}
.avatar_floral_rogue {
background-image: url(spritesmith-main-5.png);
- background-position: -789px -482px;
+ background-position: -743px -191px;
width: 99px;
height: 99px;
}
.avatar_floral_warrior {
background-image: url(spritesmith-main-5.png);
- background-position: -789px -382px;
+ background-position: -743px -391px;
width: 99px;
height: 99px;
}
.avatar_floral_wizard {
background-image: url(spritesmith-main-5.png);
- background-position: -789px -282px;
+ background-position: -743px -291px;
width: 99px;
height: 99px;
}
.empty_bottles {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -1261px;
+ background-position: -672px -584px;
width: 64px;
height: 54px;
}
.ghost {
background-image: url(spritesmith-main-5.png);
- background-position: -1095px -364px;
+ background-position: -728px -960px;
width: 90px;
height: 90px;
}
.inventory_present {
background-image: url(spritesmith-main-5.png);
- background-position: -441px -1490px;
+ background-position: -1272px -1506px;
width: 48px;
height: 51px;
}
.inventory_present_01 {
background-image: url(spritesmith-main-5.png);
- background-position: -490px -1490px;
+ background-position: -1125px -1506px;
width: 48px;
height: 51px;
}
.inventory_present_02 {
background-image: url(spritesmith-main-5.png);
- background-position: -294px -1490px;
+ background-position: -1174px -1506px;
width: 48px;
height: 51px;
}
.inventory_present_03 {
background-image: url(spritesmith-main-5.png);
- background-position: -343px -1490px;
+ background-position: -1076px -1506px;
width: 48px;
height: 51px;
}
.inventory_present_04 {
background-image: url(spritesmith-main-5.png);
- background-position: -245px -1490px;
+ background-position: -1027px -1506px;
width: 48px;
height: 51px;
}
.inventory_present_05 {
background-image: url(spritesmith-main-5.png);
- background-position: -196px -1490px;
+ background-position: -804px -597px;
width: 48px;
height: 51px;
}
.inventory_present_06 {
background-image: url(spritesmith-main-5.png);
- background-position: -539px -1490px;
+ background-position: -880px -1506px;
width: 48px;
height: 51px;
}
.inventory_present_07 {
background-image: url(spritesmith-main-5.png);
- background-position: -49px -1490px;
+ background-position: -831px -1506px;
width: 48px;
height: 51px;
}
.inventory_present_08 {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -1490px;
+ background-position: -782px -1506px;
width: 48px;
height: 51px;
}
.inventory_present_09 {
background-image: url(spritesmith-main-5.png);
- background-position: -1010px -944px;
+ background-position: -733px -1506px;
width: 48px;
height: 51px;
}
.inventory_present_10 {
background-image: url(spritesmith-main-5.png);
- background-position: -527px -481px;
+ background-position: -684px -1506px;
width: 48px;
height: 51px;
}
.inventory_present_11 {
background-image: url(spritesmith-main-5.png);
- background-position: -527px -429px;
+ background-position: -580px -439px;
width: 48px;
height: 51px;
}
.inventory_present_12 {
background-image: url(spritesmith-main-5.png);
- background-position: -392px -203px;
+ background-position: -1321px -1506px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll {
background-image: url(spritesmith-main-5.png);
- background-position: -98px -1490px;
+ background-position: -929px -1506px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_locked {
background-image: url(spritesmith-main-5.png);
- background-position: -392px -1490px;
+ background-position: -1223px -1506px;
width: 48px;
height: 51px;
}
.inventory_special_birthday {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -1371px;
+ background-position: -1514px -1415px;
width: 57px;
height: 54px;
}
.inventory_special_fortify {
background-image: url(spritesmith-main-5.png);
- background-position: -713px -521px;
+ background-position: -464px -1506px;
width: 57px;
height: 54px;
}
.inventory_special_greeting {
background-image: url(spritesmith-main-5.png);
- background-position: -713px -411px;
+ background-position: -406px -1506px;
width: 57px;
height: 54px;
}
.inventory_special_nye {
background-image: url(spritesmith-main-5.png);
- background-position: -713px -356px;
+ background-position: -348px -1506px;
width: 57px;
height: 54px;
}
.inventory_special_opaquePotion {
background-image: url(spritesmith-main-5.png);
- background-position: -574px -1624px;
+ background-position: -1517px -1602px;
width: 40px;
height: 40px;
}
.inventory_special_seafoam {
background-image: url(spritesmith-main-5.png);
- background-position: -713px -301px;
+ background-position: -290px -1506px;
width: 57px;
height: 54px;
}
.inventory_special_shinySeed {
background-image: url(spritesmith-main-5.png);
- background-position: -713px -246px;
+ background-position: -232px -1506px;
width: 57px;
height: 54px;
}
.inventory_special_snowball {
background-image: url(spritesmith-main-5.png);
- background-position: -713px -191px;
+ background-position: -174px -1506px;
width: 57px;
height: 54px;
}
.inventory_special_spookySparkles {
background-image: url(spritesmith-main-5.png);
- background-position: -713px -136px;
+ background-position: -116px -1506px;
width: 57px;
height: 54px;
}
.inventory_special_thankyou {
background-image: url(spritesmith-main-5.png);
- background-position: -789px -688px;
+ background-position: -58px -1506px;
width: 57px;
height: 54px;
}
.inventory_special_trinket {
background-image: url(spritesmith-main-5.png);
- background-position: -147px -1490px;
+ background-position: -978px -1506px;
width: 48px;
height: 51px;
}
.inventory_special_valentine {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -1426px;
+ background-position: 0px -1506px;
width: 57px;
height: 54px;
}
.knockout {
background-image: url(spritesmith-main-5.png);
- background-position: -115px -750px;
+ background-position: -115px -675px;
width: 120px;
height: 47px;
}
.pet_key {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -1316px;
+ background-position: -1456px -1415px;
width: 57px;
height: 54px;
}
.rebirth_orb {
background-image: url(spritesmith-main-5.png);
- background-position: -713px -466px;
+ background-position: -522px -1506px;
width: 57px;
height: 54px;
}
.seafoam_star {
background-image: url(spritesmith-main-5.png);
- background-position: -1095px -273px;
+ background-position: -637px -960px;
width: 90px;
height: 90px;
}
.shop_armoire {
background-image: url(spritesmith-main-5.png);
- background-position: -1312px -1624px;
+ background-position: -1668px -615px;
width: 40px;
height: 40px;
}
.snowman {
background-image: url(spritesmith-main-5.png);
- background-position: -1095px -182px;
+ background-position: -546px -960px;
width: 90px;
height: 90px;
}
.zzz {
background-image: url(spritesmith-main-5.png);
- background-position: -1435px -1624px;
+ background-position: -1668px -738px;
width: 40px;
height: 40px;
}
.zzz_light {
background-image: url(spritesmith-main-5.png);
- background-position: -1394px -1624px;
+ background-position: -1668px -697px;
width: 40px;
height: 40px;
}
.npc_alex {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -290px;
+ background-position: -196px -139px;
width: 162px;
height: 138px;
}
.npc_aprilFool {
background-image: url(spritesmith-main-5.png);
- background-position: -447px -263px;
+ background-position: -392px -124px;
width: 120px;
height: 120px;
}
.npc_bailey {
background-image: url(spritesmith-main-5.png);
- background-position: -1550px -1092px;
- width: 71px;
- height: 101px;
+ background-position: -743px -597px;
+ width: 60px;
+ height: 72px;
}
.npc_daniel {
background-image: url(spritesmith-main-5.png);
- background-position: -447px -139px;
+ background-position: -392px 0px;
width: 135px;
height: 123px;
}
-.npc_ian {
- background-image: url(spritesmith-main-5.png);
- background-position: -713px 0px;
- width: 75px;
- height: 135px;
-}
.npc_justin {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -629px;
+ background-position: -528px -212px;
width: 84px;
height: 120px;
}
.npc_justin_head {
background-image: url(spritesmith-main-5.png);
- background-position: -1682px -287px;
+ background-position: -1668px -1066px;
width: 36px;
height: 39px;
}
.npc_matt {
background-image: url(spritesmith-main-5.png);
- background-position: -251px 0px;
+ background-position: -196px 0px;
width: 195px;
height: 138px;
}
.npc_sabe {
background-image: url(spritesmith-main-5.png);
- background-position: -1095px -546px;
+ background-position: -1131px 0px;
width: 90px;
height: 90px;
}
.npc_timetravelers {
background-image: url(spritesmith-main-5.png);
- background-position: -196px -151px;
+ background-position: 0px 0px;
width: 195px;
height: 138px;
}
.npc_timetravelers_active {
background-image: url(spritesmith-main-5.png);
- background-position: 0px -151px;
+ background-position: 0px -139px;
width: 195px;
height: 138px;
}
-.npc_tyler {
- background-image: url(spritesmith-main-5.png);
- background-position: -1095px 0px;
- width: 90px;
- height: 90px;
-}
-.seasonalshop_closed {
- background-image: url(spritesmith-main-5.png);
- background-position: -163px -290px;
- width: 162px;
- height: 138px;
-}
-.seasonalshop_open {
- background-image: url(spritesmith-main-5.png);
- background-position: -447px 0px;
- width: 162px;
- height: 138px;
-}
-.quest_atom1 {
- background-image: url(spritesmith-main-5.png);
- background-position: 0px 0px;
- width: 250px;
- height: 150px;
-}
diff --git a/common/dist/sprites/spritesmith-main-5.png b/common/dist/sprites/spritesmith-main-5.png
index 8445c192b7..388d21ee54 100644
Binary files a/common/dist/sprites/spritesmith-main-5.png and b/common/dist/sprites/spritesmith-main-5.png differ
diff --git a/common/dist/sprites/spritesmith-main-6.css b/common/dist/sprites/spritesmith-main-6.css
index 56ecbb9135..0eb6cb0dcf 100644
--- a/common/dist/sprites/spritesmith-main-6.css
+++ b/common/dist/sprites/spritesmith-main-6.css
@@ -1,9 +1,33 @@
+.npc_tyler {
+ background-image: url(spritesmith-main-6.png);
+ background-position: -1656px -1247px;
+ width: 90px;
+ height: 90px;
+}
+.seasonalshop_closed {
+ background-image: url(spritesmith-main-6.png);
+ background-position: -1537px -969px;
+ width: 162px;
+ height: 138px;
+}
+.seasonalshop_open {
+ background-image: url(spritesmith-main-6.png);
+ background-position: -1537px -1108px;
+ width: 162px;
+ height: 138px;
+}
.quest_TEMPLATE_FOR_MISSING_IMAGE {
background-image: url(spritesmith-main-6.png);
- background-position: -1163px -1432px;
+ background-position: 0px -1504px;
width: 221px;
height: 39px;
}
+.quest_atom1 {
+ background-image: url(spritesmith-main-6.png);
+ background-position: -719px -1326px;
+ width: 250px;
+ height: 150px;
+}
.quest_atom2 {
background-image: url(spritesmith-main-6.png);
background-position: -1537px -537px;
@@ -18,7 +42,7 @@
}
.quest_axolotl {
background-image: url(spritesmith-main-6.png);
- background-position: 0px -892px;
+ background-position: -220px -232px;
width: 219px;
height: 219px;
}
@@ -36,13 +60,13 @@
}
.quest_cheetah {
background-image: url(spritesmith-main-6.png);
- background-position: -440px 0px;
+ background-position: -660px -220px;
width: 219px;
height: 219px;
}
.quest_dilatory {
background-image: url(spritesmith-main-6.png);
- background-position: -220px -232px;
+ background-position: -220px -452px;
width: 219px;
height: 219px;
}
@@ -60,37 +84,37 @@
}
.quest_dilatoryDistress3 {
background-image: url(spritesmith-main-6.png);
- background-position: -660px -220px;
+ background-position: -880px 0px;
width: 219px;
height: 219px;
}
.quest_dilatory_derby {
background-image: url(spritesmith-main-6.png);
- background-position: 0px -232px;
+ background-position: 0px -452px;
width: 219px;
height: 219px;
}
.quest_egg {
background-image: url(spritesmith-main-6.png);
- background-position: -719px -1432px;
+ background-position: -1192px -1432px;
width: 221px;
height: 39px;
}
.quest_evilsanta {
background-image: url(spritesmith-main-6.png);
- background-position: -1537px -969px;
+ background-position: -1537px -1247px;
width: 118px;
height: 131px;
}
.quest_evilsanta2 {
background-image: url(spritesmith-main-6.png);
- background-position: -220px -452px;
+ background-position: 0px -672px;
width: 219px;
height: 219px;
}
.quest_falcon {
background-image: url(spritesmith-main-6.png);
- background-position: -440px -452px;
+ background-position: -220px -672px;
width: 219px;
height: 219px;
}
@@ -102,13 +126,13 @@
}
.quest_ghost_stag {
background-image: url(spritesmith-main-6.png);
- background-position: -880px 0px;
+ background-position: -660px -672px;
width: 219px;
height: 219px;
}
.quest_goldenknight1 {
background-image: url(spritesmith-main-6.png);
- background-position: -941px -1432px;
+ background-position: -970px -1432px;
width: 221px;
height: 39px;
}
@@ -126,13 +150,13 @@
}
.quest_gryphon {
background-image: url(spritesmith-main-6.png);
- background-position: -880px -1112px;
+ background-position: -1097px -1112px;
width: 216px;
height: 177px;
}
.quest_harpy {
background-image: url(spritesmith-main-6.png);
- background-position: -880px -440px;
+ background-position: -1100px -660px;
width: 219px;
height: 219px;
}
@@ -144,37 +168,37 @@
}
.quest_horse {
background-image: url(spritesmith-main-6.png);
- background-position: -660px -672px;
+ background-position: -220px -892px;
width: 219px;
height: 219px;
}
.quest_kraken {
background-image: url(spritesmith-main-6.png);
- background-position: -663px -1112px;
+ background-position: 0px -1326px;
width: 216px;
height: 177px;
}
.quest_monkey {
background-image: url(spritesmith-main-6.png);
- background-position: -1100px 0px;
+ background-position: -660px -892px;
width: 219px;
height: 219px;
}
.quest_moonstone1 {
background-image: url(spritesmith-main-6.png);
- background-position: -1100px -220px;
+ background-position: -440px -892px;
width: 219px;
height: 219px;
}
.quest_moonstone2 {
background-image: url(spritesmith-main-6.png);
- background-position: -1100px -440px;
+ background-position: 0px -892px;
width: 219px;
height: 219px;
}
.quest_moonstone3 {
background-image: url(spritesmith-main-6.png);
- background-position: -1100px -660px;
+ background-position: -1100px -440px;
width: 219px;
height: 219px;
}
@@ -186,7 +210,7 @@
}
.quest_owl {
background-image: url(spritesmith-main-6.png);
- background-position: -220px -892px;
+ background-position: -220px 0px;
width: 219px;
height: 219px;
}
@@ -198,7 +222,7 @@
}
.quest_rat {
background-image: url(spritesmith-main-6.png);
- background-position: -660px -452px;
+ background-position: -1100px 0px;
width: 219px;
height: 219px;
}
@@ -222,13 +246,13 @@
}
.quest_sheep {
background-image: url(spritesmith-main-6.png);
- background-position: -440px -232px;
+ background-position: -880px -440px;
width: 219px;
height: 219px;
}
.quest_slime {
background-image: url(spritesmith-main-6.png);
- background-position: 0px -672px;
+ background-position: -660px -452px;
width: 219px;
height: 219px;
}
@@ -252,31 +276,31 @@
}
.quest_stressbeast {
background-image: url(spritesmith-main-6.png);
- background-position: -220px 0px;
+ background-position: 0px -232px;
width: 219px;
height: 219px;
}
.quest_stressbeast_bailey {
background-image: url(spritesmith-main-6.png);
- background-position: -660px -892px;
+ background-position: -440px -452px;
width: 219px;
height: 219px;
}
.quest_stressbeast_guide {
background-image: url(spritesmith-main-6.png);
- background-position: -440px -892px;
+ background-position: -660px 0px;
width: 219px;
height: 219px;
}
.quest_stressbeast_stables {
background-image: url(spritesmith-main-6.png);
- background-position: -880px -672px;
+ background-position: -440px -232px;
width: 219px;
height: 219px;
}
.quest_treeling {
background-image: url(spritesmith-main-6.png);
- background-position: -1097px -1112px;
+ background-position: -880px -1112px;
width: 216px;
height: 177px;
}
@@ -288,31 +312,31 @@
}
.quest_trex_undead {
background-image: url(spritesmith-main-6.png);
- background-position: -1314px -1112px;
+ background-position: -663px -1112px;
width: 216px;
height: 177px;
}
.quest_turtle {
background-image: url(spritesmith-main-6.png);
- background-position: -880px -220px;
+ background-position: -440px 0px;
width: 219px;
height: 219px;
}
.quest_unicorn {
background-image: url(spritesmith-main-6.png);
- background-position: 0px -452px;
+ background-position: -1100px -220px;
width: 219px;
height: 219px;
}
.quest_vice1 {
background-image: url(spritesmith-main-6.png);
- background-position: 0px -1326px;
+ background-position: -1314px -1112px;
width: 216px;
height: 177px;
}
.quest_vice2 {
background-image: url(spritesmith-main-6.png);
- background-position: -660px 0px;
+ background-position: -880px -672px;
width: 219px;
height: 219px;
}
@@ -324,79 +348,79 @@
}
.quest_whale {
background-image: url(spritesmith-main-6.png);
- background-position: -220px -672px;
+ background-position: -880px -220px;
width: 219px;
height: 219px;
}
.quest_dilatoryDistress1_blueFins {
background-image: url(spritesmith-main-6.png);
- background-position: -947px -1556px;
+ background-position: -833px -1596px;
width: 51px;
height: 48px;
}
.quest_dilatoryDistress1_fireCoral {
background-image: url(spritesmith-main-6.png);
- background-position: 0px -1610px;
+ background-position: 0px -1648px;
width: 48px;
height: 51px;
}
.quest_egg_plainEgg {
background-image: url(spritesmith-main-6.png);
- background-position: -49px -1610px;
+ background-position: -49px -1648px;
width: 48px;
height: 51px;
}
.quest_goldenknight1_testimony {
background-image: url(spritesmith-main-6.png);
- background-position: -98px -1610px;
+ background-position: -98px -1648px;
width: 48px;
height: 51px;
}
.quest_moonstone1_moonstone {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1600px;
+ background-position: -1320px -1080px;
width: 30px;
height: 30px;
}
.quest_vice2_lightCrystal {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1386px;
+ background-position: -84px -1700px;
width: 40px;
height: 40px;
}
.inventory_quest_scroll_atom1 {
background-image: url(spritesmith-main-6.png);
- background-position: -196px -1610px;
+ background-position: -294px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_atom1_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -147px -1610px;
+ background-position: -147px -1648px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_atom2 {
background-image: url(spritesmith-main-6.png);
- background-position: -294px -1610px;
+ background-position: -1029px -1648px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_atom2_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -245px -1610px;
+ background-position: -1688px -871px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_atom3 {
background-image: url(spritesmith-main-6.png);
- background-position: -392px -1610px;
+ background-position: -1700px -1021px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_atom3_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -343px -1610px;
+ background-position: -1700px -969px;
width: 48px;
height: 51px;
}
@@ -408,1039 +432,985 @@
}
.inventory_quest_scroll_basilist {
background-image: url(spritesmith-main-6.png);
- background-position: -555px -1556px;
+ background-position: -1700px -1160px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_bunny {
background-image: url(spritesmith-main-6.png);
- background-position: -800px -1556px;
+ background-position: -1394px -1326px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_cheetah {
background-image: url(spritesmith-main-6.png);
- background-position: -1274px -1610px;
+ background-position: -1443px -1326px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_dilatoryDistress1 {
background-image: url(spritesmith-main-6.png);
- background-position: -898px -1556px;
+ background-position: -1443px -1378px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_dilatoryDistress2 {
background-image: url(spritesmith-main-6.png);
- background-position: -1656px -969px;
+ background-position: -49px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_dilatoryDistress2_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -441px -1610px;
+ background-position: 0px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_dilatoryDistress3 {
background-image: url(spritesmith-main-6.png);
- background-position: -1537px -1419px;
+ background-position: -147px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_dilatoryDistress3_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -1656px -1021px;
+ background-position: -98px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_dilatory_derby {
background-image: url(spritesmith-main-6.png);
- background-position: -849px -1556px;
+ background-position: -1394px -1378px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_egg {
background-image: url(spritesmith-main-6.png);
- background-position: -1586px -1419px;
+ background-position: -196px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_evilsanta {
background-image: url(spritesmith-main-6.png);
- background-position: -1635px -1419px;
+ background-position: -245px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_evilsanta2 {
background-image: url(spritesmith-main-6.png);
- background-position: -1684px -1419px;
+ background-position: -294px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_falcon {
background-image: url(spritesmith-main-6.png);
- background-position: -1461px -1326px;
+ background-position: -343px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_frog {
background-image: url(spritesmith-main-6.png);
- background-position: -1461px -1378px;
+ background-position: -392px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_ghost_stag {
background-image: url(spritesmith-main-6.png);
- background-position: -212px -1504px;
+ background-position: -441px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_goldenknight1 {
background-image: url(spritesmith-main-6.png);
- background-position: -310px -1504px;
+ background-position: -539px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_goldenknight1_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -261px -1504px;
+ background-position: -490px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_goldenknight2 {
background-image: url(spritesmith-main-6.png);
- background-position: -408px -1504px;
+ background-position: -637px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_goldenknight2_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -359px -1504px;
+ background-position: -588px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_goldenknight3 {
background-image: url(spritesmith-main-6.png);
- background-position: -506px -1504px;
+ background-position: -735px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_goldenknight3_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -457px -1504px;
+ background-position: -686px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_gryphon {
background-image: url(spritesmith-main-6.png);
- background-position: -555px -1504px;
+ background-position: -784px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_harpy {
background-image: url(spritesmith-main-6.png);
- background-position: -604px -1504px;
+ background-position: -833px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_hedgehog {
background-image: url(spritesmith-main-6.png);
- background-position: -653px -1504px;
+ background-position: -882px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_horse {
background-image: url(spritesmith-main-6.png);
- background-position: -702px -1504px;
+ background-position: -931px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_kraken {
background-image: url(spritesmith-main-6.png);
- background-position: -751px -1504px;
+ background-position: -980px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_monkey {
background-image: url(spritesmith-main-6.png);
- background-position: -800px -1504px;
+ background-position: -1029px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_moonstone1 {
background-image: url(spritesmith-main-6.png);
- background-position: -898px -1504px;
+ background-position: -1127px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_moonstone1_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -849px -1504px;
+ background-position: -1078px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_moonstone2 {
background-image: url(spritesmith-main-6.png);
- background-position: -996px -1504px;
+ background-position: -1225px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_moonstone2_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -947px -1504px;
+ background-position: -1176px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_moonstone3 {
background-image: url(spritesmith-main-6.png);
- background-position: -1094px -1504px;
+ background-position: -1323px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_moonstone3_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -1045px -1504px;
+ background-position: -1274px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_octopus {
background-image: url(spritesmith-main-6.png);
- background-position: -1143px -1504px;
+ background-position: -1372px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_owl {
background-image: url(spritesmith-main-6.png);
- background-position: -1192px -1504px;
+ background-position: -1421px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_penguin {
background-image: url(spritesmith-main-6.png);
- background-position: -1241px -1504px;
+ background-position: -1470px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_rat {
background-image: url(spritesmith-main-6.png);
- background-position: -1290px -1504px;
+ background-position: -1519px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_rock {
background-image: url(spritesmith-main-6.png);
- background-position: -1339px -1504px;
+ background-position: -1568px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_rooster {
background-image: url(spritesmith-main-6.png);
- background-position: -1388px -1504px;
+ background-position: -1617px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_sabretooth {
background-image: url(spritesmith-main-6.png);
- background-position: -1437px -1504px;
+ background-position: -1666px -1544px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_sheep {
background-image: url(spritesmith-main-6.png);
- background-position: -1486px -1504px;
+ background-position: 0px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_slime {
background-image: url(spritesmith-main-6.png);
- background-position: -1535px -1504px;
+ background-position: -49px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_snail {
background-image: url(spritesmith-main-6.png);
- background-position: -1584px -1504px;
+ background-position: -98px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_snake {
background-image: url(spritesmith-main-6.png);
- background-position: -1633px -1504px;
+ background-position: -147px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_spider {
background-image: url(spritesmith-main-6.png);
- background-position: -1682px -1504px;
+ background-position: -196px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_treeling {
background-image: url(spritesmith-main-6.png);
- background-position: -212px -1556px;
+ background-position: -245px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_trex {
background-image: url(spritesmith-main-6.png);
- background-position: -310px -1556px;
+ background-position: -343px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_trex_undead {
background-image: url(spritesmith-main-6.png);
- background-position: -261px -1556px;
+ background-position: -1700px -1108px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_turtle {
background-image: url(spritesmith-main-6.png);
- background-position: -359px -1556px;
+ background-position: -392px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_unicorn {
background-image: url(spritesmith-main-6.png);
- background-position: -408px -1556px;
+ background-position: -441px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_vice1 {
background-image: url(spritesmith-main-6.png);
- background-position: -506px -1556px;
+ background-position: -539px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_vice1_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -457px -1556px;
+ background-position: -490px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_vice2 {
background-image: url(spritesmith-main-6.png);
- background-position: -604px -1556px;
+ background-position: -637px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_vice2_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -104px;
+ background-position: -588px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_vice3 {
background-image: url(spritesmith-main-6.png);
- background-position: -702px -1556px;
+ background-position: -735px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_vice3_locked {
background-image: url(spritesmith-main-6.png);
- background-position: -653px -1556px;
+ background-position: -686px -1596px;
width: 48px;
height: 51px;
}
.inventory_quest_scroll_whale {
background-image: url(spritesmith-main-6.png);
- background-position: -751px -1556px;
+ background-position: -784px -1596px;
width: 48px;
height: 51px;
}
.shop_copper {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1677px;
+ background-position: -1417px -1080px;
width: 32px;
height: 22px;
}
.shop_eyes {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1222px;
+ background-position: -1682px -1596px;
width: 40px;
height: 40px;
}
.shop_gold {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1654px;
+ background-position: -1384px -1080px;
width: 32px;
height: 22px;
}
.shop_opaquePotion {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1263px;
+ background-position: -43px -1700px;
width: 40px;
height: 40px;
}
.shop_potion {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1304px;
+ background-position: -125px -1700px;
width: 40px;
height: 40px;
}
.shop_reroll {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1345px;
+ background-position: -166px -1700px;
width: 40px;
height: 40px;
}
.shop_seafoam {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1468px;
+ background-position: -1751px -1664px;
width: 32px;
height: 32px;
}
.shop_shinySeed {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1501px;
+ background-position: -1700px -1073px;
width: 32px;
height: 32px;
}
.shop_silver {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1631px;
+ background-position: -1351px -1080px;
width: 32px;
height: 22px;
}
.shop_snowball {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1534px;
+ background-position: -1700px -1212px;
width: 32px;
height: 32px;
}
.shop_spookySparkles {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1567px;
+ background-position: -1102px -1070px;
width: 32px;
height: 32px;
}
.shop_backStab {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1181px;
+ background-position: -1641px -1596px;
width: 40px;
height: 40px;
}
.shop_brightness {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1140px;
+ background-position: -1600px -1596px;
width: 40px;
height: 40px;
}
.shop_defensiveStance {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1099px;
+ background-position: -1559px -1596px;
width: 40px;
height: 40px;
}
.shop_earth {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1427px;
+ background-position: -1518px -1596px;
width: 40px;
height: 40px;
}
.shop_fireball {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1017px;
+ background-position: -1477px -1596px;
width: 40px;
height: 40px;
}
.shop_frost {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -976px;
+ background-position: -207px -1700px;
width: 40px;
height: 40px;
}
.shop_heal {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -935px;
+ background-position: -1395px -1596px;
width: 40px;
height: 40px;
}
.shop_healAll {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -894px;
+ background-position: -1354px -1596px;
width: 40px;
height: 40px;
}
.shop_intimidate {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -853px;
+ background-position: -1313px -1596px;
width: 40px;
height: 40px;
}
.shop_mpheal {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -812px;
+ background-position: -1272px -1596px;
width: 40px;
height: 40px;
}
.shop_pickPocket {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -771px;
+ background-position: -1231px -1596px;
width: 40px;
height: 40px;
}
.shop_protectAura {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -730px;
+ background-position: -1436px -1596px;
width: 40px;
height: 40px;
}
.shop_smash {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -689px;
+ background-position: -1190px -1596px;
width: 40px;
height: 40px;
}
.shop_stealth {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -648px;
+ background-position: -1149px -1596px;
width: 40px;
height: 40px;
}
.shop_toolsOfTrade {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -607px;
+ background-position: -1697px -1338px;
width: 40px;
height: 40px;
}
.shop_valorousPresence {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -1058px;
+ background-position: -1656px -1338px;
width: 40px;
height: 40px;
}
.Pet_Egg_Axolotl {
background-image: url(spritesmith-main-6.png);
- background-position: -1127px -1610px;
+ background-position: -1274px -1648px;
width: 48px;
height: 51px;
}
.Pet_Egg_BearCub {
background-image: url(spritesmith-main-6.png);
- background-position: -1176px -1610px;
+ background-position: -1323px -1648px;
width: 48px;
height: 51px;
}
.Pet_Egg_Bunny {
background-image: url(spritesmith-main-6.png);
- background-position: -1225px -1610px;
+ background-position: -1372px -1648px;
width: 48px;
height: 51px;
}
.Pet_Egg_Cactus {
background-image: url(spritesmith-main-6.png);
- background-position: -1688px -871px;
+ background-position: -1421px -1648px;
width: 48px;
height: 51px;
}
.Pet_Egg_Cheetah {
background-image: url(spritesmith-main-6.png);
- background-position: -1323px -1610px;
+ background-position: -1470px -1648px;
width: 48px;
height: 51px;
}
.Pet_Egg_Cuttlefish {
background-image: url(spritesmith-main-6.png);
- background-position: -1372px -1610px;
+ background-position: -1519px -1648px;
width: 48px;
height: 51px;
}
.Pet_Egg_Deer {
background-image: url(spritesmith-main-6.png);
- background-position: -1421px -1610px;
+ background-position: -1568px -1648px;
width: 48px;
height: 51px;
}
.Pet_Egg_Dragon {
background-image: url(spritesmith-main-6.png);
- background-position: -1470px -1610px;
+ background-position: -1617px -1648px;
width: 48px;
height: 51px;
}
.Pet_Egg_Egg {
background-image: url(spritesmith-main-6.png);
- background-position: -1519px -1610px;
+ background-position: -1666px -1648px;
width: 48px;
height: 51px;
}
.Pet_Egg_Falcon {
background-image: url(spritesmith-main-6.png);
- background-position: -1568px -1610px;
+ background-position: -1751px 0px;
width: 48px;
height: 51px;
}
.Pet_Egg_FlyingPig {
background-image: url(spritesmith-main-6.png);
- background-position: -1617px -1610px;
+ background-position: -1751px -52px;
width: 48px;
height: 51px;
}
.Pet_Egg_Fox {
background-image: url(spritesmith-main-6.png);
- background-position: -1666px -1610px;
+ background-position: -1751px -104px;
width: 48px;
height: 51px;
}
.Pet_Egg_Frog {
background-image: url(spritesmith-main-6.png);
- background-position: 0px -1662px;
+ background-position: -1751px -156px;
width: 48px;
height: 51px;
}
.Pet_Egg_Gryphon {
background-image: url(spritesmith-main-6.png);
- background-position: -49px -1662px;
+ background-position: -1751px -208px;
width: 48px;
height: 51px;
}
.Pet_Egg_Hedgehog {
background-image: url(spritesmith-main-6.png);
- background-position: -98px -1662px;
+ background-position: -1751px -260px;
width: 48px;
height: 51px;
}
.Pet_Egg_Horse {
background-image: url(spritesmith-main-6.png);
- background-position: -147px -1662px;
+ background-position: -1751px -312px;
width: 48px;
height: 51px;
}
.Pet_Egg_LionCub {
background-image: url(spritesmith-main-6.png);
- background-position: -196px -1662px;
+ background-position: -1751px -364px;
width: 48px;
height: 51px;
}
.Pet_Egg_Monkey {
background-image: url(spritesmith-main-6.png);
- background-position: -245px -1662px;
+ background-position: -1751px -416px;
width: 48px;
height: 51px;
}
.Pet_Egg_Octopus {
background-image: url(spritesmith-main-6.png);
- background-position: -294px -1662px;
+ background-position: -1751px -468px;
width: 48px;
height: 51px;
}
.Pet_Egg_Owl {
background-image: url(spritesmith-main-6.png);
- background-position: -343px -1662px;
+ background-position: -1751px -520px;
width: 48px;
height: 51px;
}
.Pet_Egg_PandaCub {
background-image: url(spritesmith-main-6.png);
- background-position: -392px -1662px;
+ background-position: -1751px -572px;
width: 48px;
height: 51px;
}
.Pet_Egg_Parrot {
background-image: url(spritesmith-main-6.png);
- background-position: -441px -1662px;
+ background-position: -1751px -624px;
width: 48px;
height: 51px;
}
.Pet_Egg_Penguin {
background-image: url(spritesmith-main-6.png);
- background-position: -490px -1662px;
+ background-position: -1751px -676px;
width: 48px;
height: 51px;
}
.Pet_Egg_PolarBear {
background-image: url(spritesmith-main-6.png);
- background-position: -539px -1662px;
+ background-position: -1751px -728px;
width: 48px;
height: 51px;
}
.Pet_Egg_Rat {
background-image: url(spritesmith-main-6.png);
- background-position: -588px -1662px;
+ background-position: -1751px -780px;
width: 48px;
height: 51px;
}
.Pet_Egg_Rock {
background-image: url(spritesmith-main-6.png);
- background-position: -637px -1662px;
+ background-position: -1751px -832px;
width: 48px;
height: 51px;
}
.Pet_Egg_Rooster {
background-image: url(spritesmith-main-6.png);
- background-position: -686px -1662px;
+ background-position: -1751px -884px;
width: 48px;
height: 51px;
}
.Pet_Egg_Sabretooth {
background-image: url(spritesmith-main-6.png);
- background-position: -735px -1662px;
+ background-position: -1751px -936px;
width: 48px;
height: 51px;
}
.Pet_Egg_Seahorse {
background-image: url(spritesmith-main-6.png);
- background-position: -784px -1662px;
+ background-position: -1751px -988px;
width: 48px;
height: 51px;
}
.Pet_Egg_Sheep {
background-image: url(spritesmith-main-6.png);
- background-position: -833px -1662px;
+ background-position: -1751px -1040px;
width: 48px;
height: 51px;
}
.Pet_Egg_Slime {
background-image: url(spritesmith-main-6.png);
- background-position: -882px -1662px;
+ background-position: -1751px -1092px;
width: 48px;
height: 51px;
}
.Pet_Egg_Snail {
background-image: url(spritesmith-main-6.png);
- background-position: -931px -1662px;
+ background-position: -1751px -1144px;
width: 48px;
height: 51px;
}
.Pet_Egg_Snake {
background-image: url(spritesmith-main-6.png);
- background-position: -980px -1662px;
+ background-position: -1751px -1196px;
width: 48px;
height: 51px;
}
.Pet_Egg_Spider {
background-image: url(spritesmith-main-6.png);
- background-position: -1029px -1662px;
+ background-position: -1751px -1248px;
width: 48px;
height: 51px;
}
.Pet_Egg_TRex {
background-image: url(spritesmith-main-6.png);
- background-position: -1176px -1662px;
+ background-position: -1751px -1404px;
width: 48px;
height: 51px;
}
.Pet_Egg_TigerCub {
background-image: url(spritesmith-main-6.png);
- background-position: -1078px -1662px;
+ background-position: -1751px -1300px;
width: 48px;
height: 51px;
}
.Pet_Egg_Treeling {
background-image: url(spritesmith-main-6.png);
- background-position: -1127px -1662px;
+ background-position: -1751px -1352px;
width: 48px;
height: 51px;
}
.Pet_Egg_Turtle {
background-image: url(spritesmith-main-6.png);
- background-position: -1225px -1662px;
+ background-position: -1751px -1456px;
width: 48px;
height: 51px;
}
.Pet_Egg_Unicorn {
background-image: url(spritesmith-main-6.png);
- background-position: -1274px -1662px;
+ background-position: -1751px -1508px;
width: 48px;
height: 51px;
}
.Pet_Egg_Whale {
background-image: url(spritesmith-main-6.png);
- background-position: -1323px -1662px;
+ background-position: -1751px -1560px;
width: 48px;
height: 51px;
}
.Pet_Egg_Wolf {
background-image: url(spritesmith-main-6.png);
- background-position: -1372px -1662px;
+ background-position: -1751px -1612px;
width: 48px;
height: 51px;
}
.Pet_Food_Cake_Base {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -475px;
+ background-position: -1061px -1596px;
width: 43px;
height: 43px;
}
.Pet_Food_Cake_CottonCandyBlue {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -519px;
+ background-position: 0px -1700px;
width: 42px;
height: 44px;
}
.Pet_Food_Cake_CottonCandyPink {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -294px;
+ background-position: -885px -1596px;
width: 43px;
height: 45px;
}
.Pet_Food_Cake_Desert {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -385px;
+ background-position: -929px -1596px;
width: 43px;
height: 44px;
}
.Pet_Food_Cake_Golden {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -564px;
+ background-position: -1105px -1596px;
width: 43px;
height: 42px;
}
.Pet_Food_Cake_Red {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -340px;
+ background-position: -973px -1596px;
width: 43px;
height: 44px;
}
.Pet_Food_Cake_Shade {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -430px;
+ background-position: -1017px -1596px;
width: 43px;
height: 44px;
}
.Pet_Food_Cake_Skeleton {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -201px;
+ background-position: -1492px -1326px;
width: 42px;
height: 47px;
}
.Pet_Food_Cake_White {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -249px;
+ background-position: -1492px -1378px;
width: 44px;
height: 44px;
}
.Pet_Food_Cake_Zombie {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -156px;
+ background-position: -1688px -923px;
width: 45px;
height: 44px;
}
.Pet_Food_Candy_Base {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px -52px;
+ background-position: -1225px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Candy_CottonCandyBlue {
background-image: url(spritesmith-main-6.png);
- background-position: -1751px 0px;
+ background-position: -1176px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Candy_CottonCandyPink {
background-image: url(spritesmith-main-6.png);
- background-position: -1666px -1662px;
+ background-position: -1127px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Candy_Desert {
background-image: url(spritesmith-main-6.png);
- background-position: -1617px -1662px;
+ background-position: -1078px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Candy_Golden {
background-image: url(spritesmith-main-6.png);
- background-position: -1568px -1662px;
+ background-position: -980px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Candy_Red {
background-image: url(spritesmith-main-6.png);
- background-position: -1519px -1662px;
+ background-position: -931px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Candy_Shade {
background-image: url(spritesmith-main-6.png);
- background-position: -1470px -1662px;
+ background-position: -882px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Candy_Skeleton {
background-image: url(spritesmith-main-6.png);
- background-position: -1421px -1662px;
+ background-position: -833px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Candy_White {
background-image: url(spritesmith-main-6.png);
- background-position: -1078px -1610px;
+ background-position: -784px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Candy_Zombie {
background-image: url(spritesmith-main-6.png);
- background-position: -1029px -1610px;
+ background-position: -735px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Chocolate {
background-image: url(spritesmith-main-6.png);
- background-position: -980px -1610px;
+ background-position: -686px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_CottonCandyBlue {
background-image: url(spritesmith-main-6.png);
- background-position: -931px -1610px;
+ background-position: -637px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_CottonCandyPink {
background-image: url(spritesmith-main-6.png);
- background-position: -882px -1610px;
+ background-position: -588px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Fish {
background-image: url(spritesmith-main-6.png);
- background-position: -833px -1610px;
+ background-position: -539px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Honey {
background-image: url(spritesmith-main-6.png);
- background-position: -784px -1610px;
+ background-position: -490px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Meat {
background-image: url(spritesmith-main-6.png);
- background-position: -735px -1610px;
+ background-position: -441px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Milk {
background-image: url(spritesmith-main-6.png);
- background-position: -686px -1610px;
+ background-position: -392px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Potatoe {
background-image: url(spritesmith-main-6.png);
- background-position: -637px -1610px;
+ background-position: -343px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_RottenMeat {
background-image: url(spritesmith-main-6.png);
- background-position: -588px -1610px;
+ background-position: -294px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Saddle {
background-image: url(spritesmith-main-6.png);
- background-position: -539px -1610px;
+ background-position: -245px -1648px;
width: 48px;
height: 51px;
}
.Pet_Food_Strawberry {
background-image: url(spritesmith-main-6.png);
- background-position: -490px -1610px;
+ background-position: -196px -1648px;
width: 48px;
height: 51px;
}
.Mount_Body_Axolotl-Base {
background-image: url(spritesmith-main-6.png);
- background-position: 0px -1504px;
+ background-position: -1320px -974px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-CottonCandyBlue {
background-image: url(spritesmith-main-6.png);
- background-position: -1355px -1326px;
+ background-position: -1076px -1326px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-CottonCandyPink {
background-image: url(spritesmith-main-6.png);
- background-position: -1249px -1326px;
+ background-position: -1288px -1326px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-Desert {
background-image: url(spritesmith-main-6.png);
- background-position: -1143px -1326px;
+ background-position: -1182px -1326px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-Golden {
background-image: url(spritesmith-main-6.png);
- background-position: -1037px -1326px;
+ background-position: -1537px -1379px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-Red {
background-image: url(spritesmith-main-6.png);
- background-position: -931px -1326px;
+ background-position: -970px -1326px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-Shade {
background-image: url(spritesmith-main-6.png);
- background-position: -825px -1326px;
+ background-position: -1426px -974px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-Skeleton {
background-image: url(spritesmith-main-6.png);
- background-position: -719px -1326px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Axolotl-White {
- background-image: url(spritesmith-main-6.png);
- background-position: -1426px -974px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Axolotl-Zombie {
- background-image: url(spritesmith-main-6.png);
- background-position: -1320px -974px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_BearCub-Base {
- background-image: url(spritesmith-main-6.png);
- background-position: -1643px -1313px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_BearCub-CottonCandyBlue {
- background-image: url(spritesmith-main-6.png);
- background-position: -1537px -1313px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_BearCub-CottonCandyPink {
- background-image: url(spritesmith-main-6.png);
- background-position: -1643px -1207px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_BearCub-Desert {
- background-image: url(spritesmith-main-6.png);
- background-position: -1643px -1101px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_BearCub-Floral {
- background-image: url(spritesmith-main-6.png);
- background-position: -1537px -1101px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_BearCub-Golden {
- background-image: url(spritesmith-main-6.png);
- background-position: -1537px -1207px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_BearCub-Peppermint {
- background-image: url(spritesmith-main-6.png);
- background-position: -106px -1504px;
+ background-position: -1643px -1379px;
width: 105px;
height: 105px;
}
diff --git a/common/dist/sprites/spritesmith-main-6.png b/common/dist/sprites/spritesmith-main-6.png
index 871ed442c8..667d4d8979 100644
Binary files a/common/dist/sprites/spritesmith-main-6.png and b/common/dist/sprites/spritesmith-main-6.png differ
diff --git a/common/dist/sprites/spritesmith-main-7.css b/common/dist/sprites/spritesmith-main-7.css
index 3d209c8a11..9c22416f65 100644
--- a/common/dist/sprites/spritesmith-main-7.css
+++ b/common/dist/sprites/spritesmith-main-7.css
@@ -1,720 +1,774 @@
-.Mount_Body_BearCub-Polar {
- background-image: url(spritesmith-main-7.png);
- background-position: -636px -575px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_BearCub-Red {
- background-image: url(spritesmith-main-7.png);
- background-position: -318px -1105px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_BearCub-Shade {
- background-image: url(spritesmith-main-7.png);
- background-position: -742px 0px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_BearCub-Skeleton {
- background-image: url(spritesmith-main-7.png);
- background-position: -742px -106px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_BearCub-Spooky {
- background-image: url(spritesmith-main-7.png);
- background-position: -742px -212px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_BearCub-White {
- background-image: url(spritesmith-main-7.png);
- background-position: -742px -318px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_BearCub-Zombie {
- background-image: url(spritesmith-main-7.png);
- background-position: -742px -424px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Bunny-Base {
- background-image: url(spritesmith-main-7.png);
- background-position: -742px -530px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Bunny-CottonCandyBlue {
- background-image: url(spritesmith-main-7.png);
- background-position: 0px -681px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Bunny-CottonCandyPink {
- background-image: url(spritesmith-main-7.png);
- background-position: -106px -681px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Bunny-Desert {
+.Mount_Body_Axolotl-White {
background-image: url(spritesmith-main-7.png);
background-position: -212px -681px;
width: 105px;
height: 105px;
}
-.Mount_Body_Bunny-Golden {
+.Mount_Body_Axolotl-Zombie {
background-image: url(spritesmith-main-7.png);
- background-position: 0px -1105px;
+ background-position: -318px -1105px;
width: 105px;
height: 105px;
}
-.Mount_Body_Bunny-Red {
- background-image: url(spritesmith-main-7.png);
- background-position: -106px -1105px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Bunny-Shade {
- background-image: url(spritesmith-main-7.png);
- background-position: -212px -1105px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Bunny-Skeleton {
- background-image: url(spritesmith-main-7.png);
- background-position: -424px -1105px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Bunny-White {
- background-image: url(spritesmith-main-7.png);
- background-position: -530px -1105px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Bunny-Zombie {
- background-image: url(spritesmith-main-7.png);
- background-position: -636px -1105px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cactus-Base {
- background-image: url(spritesmith-main-7.png);
- background-position: -742px -1105px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cactus-CottonCandyBlue {
- background-image: url(spritesmith-main-7.png);
- background-position: -848px -1105px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cactus-CottonCandyPink {
- background-image: url(spritesmith-main-7.png);
- background-position: -954px -1105px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cactus-Desert {
- background-image: url(spritesmith-main-7.png);
- background-position: -424px -1317px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cactus-Floral {
- background-image: url(spritesmith-main-7.png);
- background-position: -848px -1317px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cactus-Golden {
- background-image: url(spritesmith-main-7.png);
- background-position: -954px -1317px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cactus-Peppermint {
- background-image: url(spritesmith-main-7.png);
- background-position: -1060px -1317px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cactus-Red {
- background-image: url(spritesmith-main-7.png);
- background-position: -530px -230px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cactus-Shade {
- background-image: url(spritesmith-main-7.png);
- background-position: -530px -336px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cactus-Skeleton {
- background-image: url(spritesmith-main-7.png);
- background-position: -221px -469px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cactus-Spooky {
- background-image: url(spritesmith-main-7.png);
- background-position: -327px -469px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cactus-White {
- background-image: url(spritesmith-main-7.png);
- background-position: -433px -469px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cactus-Zombie {
- background-image: url(spritesmith-main-7.png);
- background-position: -636px 0px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cheetah-Base {
- background-image: url(spritesmith-main-7.png);
- background-position: -636px -106px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cheetah-CottonCandyBlue {
- background-image: url(spritesmith-main-7.png);
- background-position: -636px -212px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cheetah-CottonCandyPink {
- background-image: url(spritesmith-main-7.png);
- background-position: -636px -318px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cheetah-Desert {
- background-image: url(spritesmith-main-7.png);
- background-position: -636px -424px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cheetah-Golden {
- background-image: url(spritesmith-main-7.png);
- background-position: 0px -575px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cheetah-Red {
- background-image: url(spritesmith-main-7.png);
- background-position: -106px -575px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cheetah-Shade {
- background-image: url(spritesmith-main-7.png);
- background-position: -212px -575px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cheetah-Skeleton {
- background-image: url(spritesmith-main-7.png);
- background-position: -318px -575px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cheetah-White {
- background-image: url(spritesmith-main-7.png);
- background-position: -424px -575px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cheetah-Zombie {
- background-image: url(spritesmith-main-7.png);
- background-position: -530px -575px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Cuttlefish-Base {
- background-image: url(spritesmith-main-7.png);
- background-position: -424px 0px;
- width: 105px;
- height: 114px;
-}
-.Mount_Body_Cuttlefish-CottonCandyBlue {
- background-image: url(spritesmith-main-7.png);
- background-position: -212px 0px;
- width: 105px;
- height: 114px;
-}
-.Mount_Body_Cuttlefish-CottonCandyPink {
- background-image: url(spritesmith-main-7.png);
- background-position: 0px -124px;
- width: 105px;
- height: 114px;
-}
-.Mount_Body_Cuttlefish-Desert {
- background-image: url(spritesmith-main-7.png);
- background-position: -106px -124px;
- width: 105px;
- height: 114px;
-}
-.Mount_Body_Cuttlefish-Golden {
- background-image: url(spritesmith-main-7.png);
- background-position: -212px -124px;
- width: 105px;
- height: 114px;
-}
-.Mount_Body_Cuttlefish-Red {
- background-image: url(spritesmith-main-7.png);
- background-position: -318px 0px;
- width: 105px;
- height: 114px;
-}
-.Mount_Body_Cuttlefish-Shade {
- background-image: url(spritesmith-main-7.png);
- background-position: -318px -115px;
- width: 105px;
- height: 114px;
-}
-.Mount_Body_Cuttlefish-Skeleton {
- background-image: url(spritesmith-main-7.png);
- background-position: 0px -239px;
- width: 105px;
- height: 114px;
-}
-.Mount_Body_Cuttlefish-White {
- background-image: url(spritesmith-main-7.png);
- background-position: -106px -239px;
- width: 105px;
- height: 114px;
-}
-.Mount_Body_Cuttlefish-Zombie {
- background-image: url(spritesmith-main-7.png);
- background-position: -212px -239px;
- width: 105px;
- height: 114px;
-}
-.Mount_Body_Deer-Base {
+.Mount_Body_BearCub-Base {
background-image: url(spritesmith-main-7.png);
background-position: -318px -681px;
width: 105px;
height: 105px;
}
-.Mount_Body_Deer-CottonCandyBlue {
+.Mount_Body_BearCub-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
background-position: -424px -681px;
width: 105px;
height: 105px;
}
-.Mount_Body_Deer-CottonCandyPink {
+.Mount_Body_BearCub-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
background-position: -530px -681px;
width: 105px;
height: 105px;
}
-.Mount_Body_Deer-Desert {
+.Mount_Body_BearCub-Desert {
background-image: url(spritesmith-main-7.png);
background-position: -636px -681px;
width: 105px;
height: 105px;
}
-.Mount_Body_Deer-Golden {
+.Mount_Body_BearCub-Floral {
background-image: url(spritesmith-main-7.png);
background-position: -742px -681px;
width: 105px;
height: 105px;
}
-.Mount_Body_Deer-Red {
+.Mount_Body_BearCub-Golden {
background-image: url(spritesmith-main-7.png);
background-position: -848px 0px;
width: 105px;
height: 105px;
}
-.Mount_Body_Deer-Shade {
+.Mount_Body_BearCub-Peppermint {
background-image: url(spritesmith-main-7.png);
background-position: -848px -106px;
width: 105px;
height: 105px;
}
-.Mount_Body_Deer-Skeleton {
+.Mount_Body_BearCub-Polar {
background-image: url(spritesmith-main-7.png);
background-position: -848px -212px;
width: 105px;
height: 105px;
}
-.Mount_Body_Deer-White {
+.Mount_Body_BearCub-Red {
background-image: url(spritesmith-main-7.png);
background-position: -848px -318px;
width: 105px;
height: 105px;
}
-.Mount_Body_Deer-Zombie {
+.Mount_Body_BearCub-Shade {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -954px -1105px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_BearCub-Skeleton {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -1060px -1105px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_BearCub-Spooky {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -1166px -1105px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_BearCub-White {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -1272px 0px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_BearCub-Zombie {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -1272px -106px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Bunny-Base {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -1272px -212px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Bunny-CottonCandyBlue {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -1272px -318px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Bunny-CottonCandyPink {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -1272px -424px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Bunny-Desert {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -1272px -530px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Bunny-Golden {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -1272px -636px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Bunny-Red {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -1378px -1317px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Bunny-Shade {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -1484px -318px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Bunny-Skeleton {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -1484px -424px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Bunny-White {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -1484px -530px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Bunny-Zombie {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -530px -336px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cactus-Base {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -221px -469px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cactus-CottonCandyBlue {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -327px -469px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cactus-CottonCandyPink {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -433px -469px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cactus-Desert {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -636px 0px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cactus-Floral {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -636px -106px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cactus-Golden {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -636px -212px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cactus-Peppermint {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -636px -318px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cactus-Red {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -636px -424px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cactus-Shade {
+ background-image: url(spritesmith-main-7.png);
+ background-position: 0px -575px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cactus-Skeleton {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -106px -575px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cactus-Spooky {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -212px -575px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cactus-White {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -318px -575px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cactus-Zombie {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -424px -575px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cheetah-Base {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -530px -575px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cheetah-CottonCandyBlue {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -636px -575px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cheetah-CottonCandyPink {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -742px 0px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cheetah-Desert {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -742px -106px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cheetah-Golden {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -742px -212px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cheetah-Red {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -742px -318px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cheetah-Shade {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -742px -424px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cheetah-Skeleton {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -742px -530px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cheetah-White {
+ background-image: url(spritesmith-main-7.png);
+ background-position: 0px -681px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cheetah-Zombie {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -106px -681px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Cuttlefish-Base {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -530px -115px;
+ width: 105px;
+ height: 114px;
+}
+.Mount_Body_Cuttlefish-CottonCandyBlue {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -318px -239px;
+ width: 105px;
+ height: 114px;
+}
+.Mount_Body_Cuttlefish-CottonCandyPink {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -212px 0px;
+ width: 105px;
+ height: 114px;
+}
+.Mount_Body_Cuttlefish-Desert {
+ background-image: url(spritesmith-main-7.png);
+ background-position: 0px -124px;
+ width: 105px;
+ height: 114px;
+}
+.Mount_Body_Cuttlefish-Golden {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -106px -124px;
+ width: 105px;
+ height: 114px;
+}
+.Mount_Body_Cuttlefish-Red {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -212px -124px;
+ width: 105px;
+ height: 114px;
+}
+.Mount_Body_Cuttlefish-Shade {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -318px 0px;
+ width: 105px;
+ height: 114px;
+}
+.Mount_Body_Cuttlefish-Skeleton {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -318px -115px;
+ width: 105px;
+ height: 114px;
+}
+.Mount_Body_Cuttlefish-White {
+ background-image: url(spritesmith-main-7.png);
+ background-position: 0px -239px;
+ width: 105px;
+ height: 114px;
+}
+.Mount_Body_Cuttlefish-Zombie {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -106px -239px;
+ width: 105px;
+ height: 114px;
+}
+.Mount_Body_Deer-Base {
background-image: url(spritesmith-main-7.png);
background-position: -848px -424px;
width: 105px;
height: 105px;
}
-.Mount_Body_Dragon-Base {
+.Mount_Body_Deer-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
background-position: -848px -530px;
width: 105px;
height: 105px;
}
-.Mount_Body_Dragon-CottonCandyBlue {
+.Mount_Body_Deer-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
background-position: -848px -636px;
width: 105px;
height: 105px;
}
-.Mount_Body_Dragon-CottonCandyPink {
+.Mount_Body_Deer-Desert {
background-image: url(spritesmith-main-7.png);
background-position: 0px -787px;
width: 105px;
height: 105px;
}
-.Mount_Body_Dragon-Desert {
+.Mount_Body_Deer-Golden {
background-image: url(spritesmith-main-7.png);
background-position: -106px -787px;
width: 105px;
height: 105px;
}
-.Mount_Body_Dragon-Floral {
+.Mount_Body_Deer-Red {
background-image: url(spritesmith-main-7.png);
background-position: -212px -787px;
width: 105px;
height: 105px;
}
-.Mount_Body_Dragon-Golden {
+.Mount_Body_Deer-Shade {
background-image: url(spritesmith-main-7.png);
background-position: -318px -787px;
width: 105px;
height: 105px;
}
-.Mount_Body_Dragon-Peppermint {
+.Mount_Body_Deer-Skeleton {
background-image: url(spritesmith-main-7.png);
background-position: -424px -787px;
width: 105px;
height: 105px;
}
-.Mount_Body_Dragon-Red {
+.Mount_Body_Deer-White {
background-image: url(spritesmith-main-7.png);
background-position: -530px -787px;
width: 105px;
height: 105px;
}
-.Mount_Body_Dragon-Shade {
+.Mount_Body_Deer-Zombie {
background-image: url(spritesmith-main-7.png);
background-position: -636px -787px;
width: 105px;
height: 105px;
}
-.Mount_Body_Dragon-Skeleton {
+.Mount_Body_Dragon-Base {
background-image: url(spritesmith-main-7.png);
background-position: -742px -787px;
width: 105px;
height: 105px;
}
-.Mount_Body_Dragon-Spooky {
+.Mount_Body_Dragon-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
background-position: -848px -787px;
width: 105px;
height: 105px;
}
-.Mount_Body_Dragon-White {
+.Mount_Body_Dragon-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
background-position: -954px 0px;
width: 105px;
height: 105px;
}
-.Mount_Body_Dragon-Zombie {
+.Mount_Body_Dragon-Desert {
background-image: url(spritesmith-main-7.png);
background-position: -954px -106px;
width: 105px;
height: 105px;
}
-.Mount_Body_Egg-Base {
+.Mount_Body_Dragon-Floral {
background-image: url(spritesmith-main-7.png);
background-position: -954px -212px;
width: 105px;
height: 105px;
}
-.Mount_Body_Egg-CottonCandyBlue {
+.Mount_Body_Dragon-Golden {
background-image: url(spritesmith-main-7.png);
background-position: -954px -318px;
width: 105px;
height: 105px;
}
-.Mount_Body_Egg-CottonCandyPink {
+.Mount_Body_Dragon-Peppermint {
background-image: url(spritesmith-main-7.png);
background-position: -954px -424px;
width: 105px;
height: 105px;
}
-.Mount_Body_Egg-Desert {
+.Mount_Body_Dragon-Red {
background-image: url(spritesmith-main-7.png);
background-position: -954px -530px;
width: 105px;
height: 105px;
}
-.Mount_Body_Egg-Golden {
+.Mount_Body_Dragon-Shade {
background-image: url(spritesmith-main-7.png);
background-position: -954px -636px;
width: 105px;
height: 105px;
}
-.Mount_Body_Egg-Red {
+.Mount_Body_Dragon-Skeleton {
background-image: url(spritesmith-main-7.png);
background-position: -954px -742px;
width: 105px;
height: 105px;
}
-.Mount_Body_Egg-Shade {
+.Mount_Body_Dragon-Spooky {
background-image: url(spritesmith-main-7.png);
background-position: 0px -893px;
width: 105px;
height: 105px;
}
-.Mount_Body_Egg-Skeleton {
+.Mount_Body_Dragon-White {
background-image: url(spritesmith-main-7.png);
background-position: -106px -893px;
width: 105px;
height: 105px;
}
-.Mount_Body_Egg-White {
+.Mount_Body_Dragon-Zombie {
background-image: url(spritesmith-main-7.png);
background-position: -212px -893px;
width: 105px;
height: 105px;
}
-.Mount_Body_Egg-Zombie {
+.Mount_Body_Egg-Base {
background-image: url(spritesmith-main-7.png);
background-position: -318px -893px;
width: 105px;
height: 105px;
}
-.Mount_Body_Falcon-Base {
+.Mount_Body_Egg-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
background-position: -424px -893px;
width: 105px;
height: 105px;
}
-.Mount_Body_Falcon-CottonCandyBlue {
+.Mount_Body_Egg-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
background-position: -530px -893px;
width: 105px;
height: 105px;
}
-.Mount_Body_Falcon-CottonCandyPink {
+.Mount_Body_Egg-Desert {
background-image: url(spritesmith-main-7.png);
background-position: -636px -893px;
width: 105px;
height: 105px;
}
-.Mount_Body_Falcon-Desert {
+.Mount_Body_Egg-Golden {
background-image: url(spritesmith-main-7.png);
background-position: -742px -893px;
width: 105px;
height: 105px;
}
-.Mount_Body_Falcon-Golden {
+.Mount_Body_Egg-Red {
background-image: url(spritesmith-main-7.png);
background-position: -848px -893px;
width: 105px;
height: 105px;
}
-.Mount_Body_Falcon-Red {
+.Mount_Body_Egg-Shade {
background-image: url(spritesmith-main-7.png);
background-position: -954px -893px;
width: 105px;
height: 105px;
}
-.Mount_Body_Falcon-Shade {
+.Mount_Body_Egg-Skeleton {
background-image: url(spritesmith-main-7.png);
background-position: -1060px 0px;
width: 105px;
height: 105px;
}
-.Mount_Body_Falcon-Skeleton {
+.Mount_Body_Egg-White {
background-image: url(spritesmith-main-7.png);
background-position: -1060px -106px;
width: 105px;
height: 105px;
}
-.Mount_Body_Falcon-White {
+.Mount_Body_Egg-Zombie {
background-image: url(spritesmith-main-7.png);
background-position: -1060px -212px;
width: 105px;
height: 105px;
}
-.Mount_Body_Falcon-Zombie {
+.Mount_Body_Falcon-Base {
background-image: url(spritesmith-main-7.png);
background-position: -1060px -318px;
width: 105px;
height: 105px;
}
-.Mount_Body_FlyingPig-Base {
+.Mount_Body_Falcon-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
background-position: -1060px -424px;
width: 105px;
height: 105px;
}
-.Mount_Body_FlyingPig-CottonCandyBlue {
+.Mount_Body_Falcon-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
background-position: -1060px -530px;
width: 105px;
height: 105px;
}
-.Mount_Body_FlyingPig-CottonCandyPink {
+.Mount_Body_Falcon-Desert {
background-image: url(spritesmith-main-7.png);
background-position: -1060px -636px;
width: 105px;
height: 105px;
}
-.Mount_Body_FlyingPig-Desert {
+.Mount_Body_Falcon-Golden {
background-image: url(spritesmith-main-7.png);
background-position: -1060px -742px;
width: 105px;
height: 105px;
}
-.Mount_Body_FlyingPig-Floral {
+.Mount_Body_Falcon-Red {
background-image: url(spritesmith-main-7.png);
background-position: -1060px -848px;
width: 105px;
height: 105px;
}
-.Mount_Body_FlyingPig-Golden {
+.Mount_Body_Falcon-Shade {
background-image: url(spritesmith-main-7.png);
background-position: 0px -999px;
width: 105px;
height: 105px;
}
-.Mount_Body_FlyingPig-Peppermint {
+.Mount_Body_Falcon-Skeleton {
background-image: url(spritesmith-main-7.png);
background-position: -106px -999px;
width: 105px;
height: 105px;
}
-.Mount_Body_FlyingPig-Red {
+.Mount_Body_Falcon-White {
background-image: url(spritesmith-main-7.png);
background-position: -212px -999px;
width: 105px;
height: 105px;
}
-.Mount_Body_FlyingPig-Shade {
+.Mount_Body_Falcon-Zombie {
background-image: url(spritesmith-main-7.png);
background-position: -318px -999px;
width: 105px;
height: 105px;
}
-.Mount_Body_FlyingPig-Skeleton {
+.Mount_Body_FlyingPig-Base {
background-image: url(spritesmith-main-7.png);
background-position: -424px -999px;
width: 105px;
height: 105px;
}
-.Mount_Body_FlyingPig-Spooky {
+.Mount_Body_FlyingPig-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
background-position: -530px -999px;
width: 105px;
height: 105px;
}
-.Mount_Body_FlyingPig-White {
+.Mount_Body_FlyingPig-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
background-position: -636px -999px;
width: 105px;
height: 105px;
}
-.Mount_Body_FlyingPig-Zombie {
+.Mount_Body_FlyingPig-Desert {
background-image: url(spritesmith-main-7.png);
background-position: -742px -999px;
width: 105px;
height: 105px;
}
-.Mount_Body_Fox-Base {
+.Mount_Body_FlyingPig-Floral {
background-image: url(spritesmith-main-7.png);
background-position: -848px -999px;
width: 105px;
height: 105px;
}
-.Mount_Body_Fox-CottonCandyBlue {
+.Mount_Body_FlyingPig-Golden {
background-image: url(spritesmith-main-7.png);
background-position: -954px -999px;
width: 105px;
height: 105px;
}
-.Mount_Body_Fox-CottonCandyPink {
+.Mount_Body_FlyingPig-Peppermint {
background-image: url(spritesmith-main-7.png);
background-position: -1060px -999px;
width: 105px;
height: 105px;
}
-.Mount_Body_Fox-Desert {
+.Mount_Body_FlyingPig-Red {
background-image: url(spritesmith-main-7.png);
background-position: -1166px 0px;
width: 105px;
height: 105px;
}
-.Mount_Body_Fox-Floral {
+.Mount_Body_FlyingPig-Shade {
background-image: url(spritesmith-main-7.png);
background-position: -1166px -106px;
width: 105px;
height: 105px;
}
-.Mount_Body_Fox-Golden {
+.Mount_Body_FlyingPig-Skeleton {
background-image: url(spritesmith-main-7.png);
background-position: -1166px -212px;
width: 105px;
height: 105px;
}
-.Mount_Body_Fox-Peppermint {
+.Mount_Body_FlyingPig-Spooky {
background-image: url(spritesmith-main-7.png);
background-position: -1166px -318px;
width: 105px;
height: 105px;
}
-.Mount_Body_Fox-Red {
+.Mount_Body_FlyingPig-White {
background-image: url(spritesmith-main-7.png);
background-position: -1166px -424px;
width: 105px;
height: 105px;
}
-.Mount_Body_Fox-Shade {
+.Mount_Body_FlyingPig-Zombie {
background-image: url(spritesmith-main-7.png);
background-position: -1166px -530px;
width: 105px;
height: 105px;
}
-.Mount_Body_Fox-Skeleton {
+.Mount_Body_Fox-Base {
background-image: url(spritesmith-main-7.png);
background-position: -1166px -636px;
width: 105px;
height: 105px;
}
-.Mount_Body_Fox-Spooky {
+.Mount_Body_Fox-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
background-position: -1166px -742px;
width: 105px;
height: 105px;
}
-.Mount_Body_Fox-White {
+.Mount_Body_Fox-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
background-position: -1166px -848px;
width: 105px;
height: 105px;
}
-.Mount_Body_Fox-Zombie {
+.Mount_Body_Fox-Desert {
background-image: url(spritesmith-main-7.png);
background-position: -1166px -954px;
width: 105px;
height: 105px;
}
+.Mount_Body_Fox-Floral {
+ background-image: url(spritesmith-main-7.png);
+ background-position: 0px -1105px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Fox-Golden {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -106px -1105px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Fox-Peppermint {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -212px -1105px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Fox-Red {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -530px -230px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Fox-Shade {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -424px -1105px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Fox-Skeleton {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -530px -1105px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Fox-Spooky {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -636px -1105px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Fox-White {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -742px -1105px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Fox-Zombie {
+ background-image: url(spritesmith-main-7.png);
+ background-position: -848px -1105px;
+ width: 105px;
+ height: 105px;
+}
.Mount_Body_Frog-Base {
background-image: url(spritesmith-main-7.png);
- background-position: -318px -239px;
+ background-position: -212px -239px;
width: 105px;
height: 114px;
}
@@ -726,13 +780,13 @@
}
.Mount_Body_Frog-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
- background-position: -424px -115px;
+ background-position: -424px 0px;
width: 105px;
height: 114px;
}
.Mount_Body_Frog-Desert {
background-image: url(spritesmith-main-7.png);
- background-position: -530px 0px;
+ background-position: -424px -115px;
width: 105px;
height: 114px;
}
@@ -774,187 +828,187 @@
}
.Mount_Body_Gryphon-Base {
background-image: url(spritesmith-main-7.png);
- background-position: -1060px -1105px;
+ background-position: -1272px -742px;
width: 105px;
height: 105px;
}
.Mount_Body_Gryphon-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
- background-position: -1166px -1105px;
+ background-position: -1272px -848px;
width: 105px;
height: 105px;
}
.Mount_Body_Gryphon-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px 0px;
+ background-position: -1272px -954px;
width: 105px;
height: 105px;
}
.Mount_Body_Gryphon-Desert {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px -106px;
+ background-position: -1272px -1060px;
width: 105px;
height: 105px;
}
.Mount_Body_Gryphon-Golden {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px -212px;
+ background-position: 0px -1211px;
width: 105px;
height: 105px;
}
.Mount_Body_Gryphon-Red {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px -318px;
+ background-position: -106px -1211px;
width: 105px;
height: 105px;
}
.Mount_Body_Gryphon-RoyalPurple {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px -424px;
+ background-position: -212px -1211px;
width: 105px;
height: 105px;
}
.Mount_Body_Gryphon-Shade {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px -530px;
+ background-position: -318px -1211px;
width: 105px;
height: 105px;
}
.Mount_Body_Gryphon-Skeleton {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px -636px;
+ background-position: -424px -1211px;
width: 105px;
height: 105px;
}
.Mount_Body_Gryphon-White {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px -742px;
+ background-position: -530px -1211px;
width: 105px;
height: 105px;
}
.Mount_Body_Gryphon-Zombie {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px -848px;
+ background-position: -636px -1211px;
width: 105px;
height: 105px;
}
.Mount_Body_Hedgehog-Base {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px -954px;
+ background-position: -742px -1211px;
width: 105px;
height: 105px;
}
.Mount_Body_Hedgehog-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px -1060px;
+ background-position: -848px -1211px;
width: 105px;
height: 105px;
}
.Mount_Body_Hedgehog-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
- background-position: 0px -1211px;
+ background-position: -954px -1211px;
width: 105px;
height: 105px;
}
.Mount_Body_Hedgehog-Desert {
background-image: url(spritesmith-main-7.png);
- background-position: -106px -1211px;
+ background-position: -1060px -1211px;
width: 105px;
height: 105px;
}
.Mount_Body_Hedgehog-Golden {
background-image: url(spritesmith-main-7.png);
- background-position: -212px -1211px;
+ background-position: -1166px -1211px;
width: 105px;
height: 105px;
}
.Mount_Body_Hedgehog-Red {
background-image: url(spritesmith-main-7.png);
- background-position: -318px -1211px;
+ background-position: -1272px -1211px;
width: 105px;
height: 105px;
}
.Mount_Body_Hedgehog-Shade {
background-image: url(spritesmith-main-7.png);
- background-position: -424px -1211px;
+ background-position: -1378px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_Hedgehog-Skeleton {
background-image: url(spritesmith-main-7.png);
- background-position: -530px -1211px;
+ background-position: -1378px -106px;
width: 105px;
height: 105px;
}
.Mount_Body_Hedgehog-White {
background-image: url(spritesmith-main-7.png);
- background-position: -636px -1211px;
+ background-position: -1378px -212px;
width: 105px;
height: 105px;
}
.Mount_Body_Hedgehog-Zombie {
background-image: url(spritesmith-main-7.png);
- background-position: -742px -1211px;
+ background-position: -1378px -318px;
width: 105px;
height: 105px;
}
.Mount_Body_Horse-Base {
background-image: url(spritesmith-main-7.png);
- background-position: -848px -1211px;
+ background-position: -1378px -424px;
width: 105px;
height: 105px;
}
.Mount_Body_Horse-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
- background-position: -954px -1211px;
+ background-position: -1378px -530px;
width: 105px;
height: 105px;
}
.Mount_Body_Horse-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
- background-position: -1060px -1211px;
+ background-position: -1378px -636px;
width: 105px;
height: 105px;
}
.Mount_Body_Horse-Desert {
background-image: url(spritesmith-main-7.png);
- background-position: -1166px -1211px;
+ background-position: -1378px -742px;
width: 105px;
height: 105px;
}
.Mount_Body_Horse-Golden {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px -1211px;
+ background-position: -1378px -848px;
width: 105px;
height: 105px;
}
.Mount_Body_Horse-Red {
background-image: url(spritesmith-main-7.png);
- background-position: -1378px 0px;
+ background-position: -1378px -954px;
width: 105px;
height: 105px;
}
.Mount_Body_Horse-Shade {
background-image: url(spritesmith-main-7.png);
- background-position: -1378px -106px;
+ background-position: -1378px -1060px;
width: 105px;
height: 105px;
}
.Mount_Body_Horse-Skeleton {
background-image: url(spritesmith-main-7.png);
- background-position: -1378px -212px;
+ background-position: -1378px -1166px;
width: 105px;
height: 105px;
}
.Mount_Body_Horse-White {
background-image: url(spritesmith-main-7.png);
- background-position: -1378px -318px;
+ background-position: 0px -1317px;
width: 105px;
height: 105px;
}
.Mount_Body_Horse-Zombie {
background-image: url(spritesmith-main-7.png);
- background-position: -1378px -424px;
+ background-position: -106px -1317px;
width: 105px;
height: 105px;
}
@@ -966,61 +1020,61 @@
}
.Mount_Body_LionCub-Base {
background-image: url(spritesmith-main-7.png);
- background-position: -1378px -636px;
+ background-position: -318px -1317px;
width: 105px;
height: 105px;
}
.Mount_Body_LionCub-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
- background-position: -1378px -742px;
+ background-position: -424px -1317px;
width: 105px;
height: 105px;
}
.Mount_Body_LionCub-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
- background-position: -1378px -848px;
+ background-position: -530px -1317px;
width: 105px;
height: 105px;
}
.Mount_Body_LionCub-Desert {
background-image: url(spritesmith-main-7.png);
- background-position: -1378px -954px;
+ background-position: -636px -1317px;
width: 105px;
height: 105px;
}
.Mount_Body_LionCub-Ethereal {
background-image: url(spritesmith-main-7.png);
- background-position: -1378px -1060px;
+ background-position: -742px -1317px;
width: 105px;
height: 105px;
}
.Mount_Body_LionCub-Floral {
background-image: url(spritesmith-main-7.png);
- background-position: -1378px -1166px;
+ background-position: -848px -1317px;
width: 105px;
height: 105px;
}
.Mount_Body_LionCub-Golden {
background-image: url(spritesmith-main-7.png);
- background-position: 0px -1317px;
+ background-position: -954px -1317px;
width: 105px;
height: 105px;
}
.Mount_Body_LionCub-Peppermint {
background-image: url(spritesmith-main-7.png);
- background-position: -106px -1317px;
+ background-position: -1060px -1317px;
width: 105px;
height: 105px;
}
.Mount_Body_LionCub-Red {
background-image: url(spritesmith-main-7.png);
- background-position: -212px -1317px;
+ background-position: -1166px -1317px;
width: 105px;
height: 105px;
}
.Mount_Body_LionCub-Shade {
background-image: url(spritesmith-main-7.png);
- background-position: -318px -1317px;
+ background-position: -1272px -1317px;
width: 105px;
height: 105px;
}
@@ -1032,25 +1086,25 @@
}
.Mount_Body_LionCub-Spooky {
background-image: url(spritesmith-main-7.png);
- background-position: -530px -1317px;
+ background-position: -1484px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_LionCub-White {
background-image: url(spritesmith-main-7.png);
- background-position: -636px -1317px;
+ background-position: -1484px -106px;
width: 105px;
height: 105px;
}
.Mount_Body_LionCub-Zombie {
background-image: url(spritesmith-main-7.png);
- background-position: -742px -1317px;
+ background-position: -1484px -212px;
width: 105px;
height: 105px;
}
.Mount_Body_MagicalBee-Base {
background-image: url(spritesmith-main-7.png);
- background-position: -530px -115px;
+ background-position: -530px 0px;
width: 105px;
height: 114px;
}
@@ -1068,401 +1122,347 @@
}
.Mount_Body_Monkey-Base {
background-image: url(spritesmith-main-7.png);
- background-position: -1166px -1317px;
+ background-position: -1484px -636px;
width: 105px;
height: 105px;
}
.Mount_Body_Monkey-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px -1317px;
+ background-position: -1484px -742px;
width: 105px;
height: 105px;
}
.Mount_Body_Monkey-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
- background-position: -1378px -1317px;
+ background-position: -1484px -848px;
width: 105px;
height: 105px;
}
.Mount_Body_Monkey-Desert {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px 0px;
+ background-position: -1484px -954px;
width: 105px;
height: 105px;
}
.Mount_Body_Monkey-Golden {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px -106px;
+ background-position: -1484px -1060px;
width: 105px;
height: 105px;
}
.Mount_Body_Monkey-Red {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px -212px;
+ background-position: -1484px -1166px;
width: 105px;
height: 105px;
}
.Mount_Body_Monkey-Shade {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px -318px;
+ background-position: -1484px -1272px;
width: 105px;
height: 105px;
}
.Mount_Body_Monkey-Skeleton {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px -424px;
+ background-position: 0px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Monkey-White {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px -530px;
+ background-position: -106px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Monkey-Zombie {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px -636px;
+ background-position: -212px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Octopus-Base {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px -742px;
+ background-position: -318px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Octopus-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px -848px;
+ background-position: -424px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Octopus-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px -954px;
+ background-position: -530px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Octopus-Desert {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px -1060px;
+ background-position: -636px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Octopus-Golden {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px -1166px;
+ background-position: -742px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Octopus-Red {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px -1272px;
+ background-position: -848px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Octopus-Shade {
background-image: url(spritesmith-main-7.png);
- background-position: 0px -1423px;
+ background-position: -954px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Octopus-Skeleton {
background-image: url(spritesmith-main-7.png);
- background-position: -106px -1423px;
+ background-position: -1060px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Octopus-White {
background-image: url(spritesmith-main-7.png);
- background-position: -212px -1423px;
+ background-position: -1166px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Octopus-Zombie {
background-image: url(spritesmith-main-7.png);
- background-position: -318px -1423px;
+ background-position: -1272px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Orca-Base {
background-image: url(spritesmith-main-7.png);
- background-position: -424px -1423px;
+ background-position: -1378px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Owl-Base {
background-image: url(spritesmith-main-7.png);
- background-position: -530px -1423px;
+ background-position: -1484px -1423px;
width: 105px;
height: 105px;
}
.Mount_Body_Owl-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
- background-position: -636px -1423px;
+ background-position: -1590px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_Owl-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
- background-position: -742px -1423px;
+ background-position: -1590px -106px;
width: 105px;
height: 105px;
}
.Mount_Body_Owl-Desert {
background-image: url(spritesmith-main-7.png);
- background-position: -848px -1423px;
+ background-position: -1590px -212px;
width: 105px;
height: 105px;
}
.Mount_Body_Owl-Golden {
background-image: url(spritesmith-main-7.png);
- background-position: -954px -1423px;
+ background-position: -1590px -318px;
width: 105px;
height: 105px;
}
.Mount_Body_Owl-Red {
background-image: url(spritesmith-main-7.png);
- background-position: -1060px -1423px;
+ background-position: -1590px -424px;
width: 105px;
height: 105px;
}
.Mount_Body_Owl-Shade {
background-image: url(spritesmith-main-7.png);
- background-position: -1166px -1423px;
+ background-position: -1590px -530px;
width: 105px;
height: 105px;
}
.Mount_Body_Owl-Skeleton {
background-image: url(spritesmith-main-7.png);
- background-position: -1272px -1423px;
+ background-position: -1590px -636px;
width: 105px;
height: 105px;
}
.Mount_Body_Owl-White {
background-image: url(spritesmith-main-7.png);
- background-position: -1378px -1423px;
+ background-position: -1590px -742px;
width: 105px;
height: 105px;
}
.Mount_Body_Owl-Zombie {
background-image: url(spritesmith-main-7.png);
- background-position: -1484px -1423px;
+ background-position: -1590px -848px;
width: 105px;
height: 105px;
}
.Mount_Body_PandaCub-Base {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px 0px;
+ background-position: -1590px -954px;
width: 105px;
height: 105px;
}
.Mount_Body_PandaCub-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px -106px;
+ background-position: -1590px -1060px;
width: 105px;
height: 105px;
}
.Mount_Body_PandaCub-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px -212px;
+ background-position: -1590px -1166px;
width: 105px;
height: 105px;
}
.Mount_Body_PandaCub-Desert {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px -318px;
+ background-position: -1590px -1272px;
width: 105px;
height: 105px;
}
.Mount_Body_PandaCub-Floral {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px -424px;
+ background-position: -1590px -1378px;
width: 105px;
height: 105px;
}
.Mount_Body_PandaCub-Golden {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px -530px;
+ background-position: 0px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_PandaCub-Peppermint {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px -636px;
+ background-position: -106px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_PandaCub-Red {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px -742px;
+ background-position: -212px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_PandaCub-Shade {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px -848px;
+ background-position: -318px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_PandaCub-Skeleton {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px -954px;
+ background-position: -424px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_PandaCub-Spooky {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px -1060px;
+ background-position: -530px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_PandaCub-White {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px -1166px;
+ background-position: -636px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_PandaCub-Zombie {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px -1272px;
+ background-position: -742px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_Parrot-Base {
background-image: url(spritesmith-main-7.png);
- background-position: -1590px -1378px;
+ background-position: -848px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_Parrot-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
- background-position: 0px -1529px;
+ background-position: -954px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_Parrot-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
- background-position: -106px -1529px;
+ background-position: -1060px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_Parrot-Desert {
background-image: url(spritesmith-main-7.png);
- background-position: -212px -1529px;
+ background-position: -1166px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_Parrot-Golden {
background-image: url(spritesmith-main-7.png);
- background-position: -318px -1529px;
+ background-position: -1272px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_Parrot-Red {
background-image: url(spritesmith-main-7.png);
- background-position: -424px -1529px;
+ background-position: -1378px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_Parrot-Shade {
background-image: url(spritesmith-main-7.png);
- background-position: -530px -1529px;
+ background-position: -1484px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_Parrot-Skeleton {
background-image: url(spritesmith-main-7.png);
- background-position: -636px -1529px;
+ background-position: -1590px -1529px;
width: 105px;
height: 105px;
}
.Mount_Body_Parrot-White {
background-image: url(spritesmith-main-7.png);
- background-position: -742px -1529px;
+ background-position: -1696px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_Parrot-Zombie {
background-image: url(spritesmith-main-7.png);
- background-position: -848px -1529px;
+ background-position: -1696px -106px;
width: 105px;
height: 105px;
}
.Mount_Body_Penguin-Base {
background-image: url(spritesmith-main-7.png);
- background-position: -954px -1529px;
+ background-position: -1696px -212px;
width: 105px;
height: 105px;
}
.Mount_Body_Penguin-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
- background-position: -1060px -1529px;
+ background-position: -1696px -318px;
width: 105px;
height: 105px;
}
.Mount_Body_Penguin-CottonCandyPink {
background-image: url(spritesmith-main-7.png);
- background-position: -1166px -1529px;
+ background-position: -212px -1317px;
width: 105px;
height: 105px;
}
.Mount_Body_Penguin-Desert {
- background-image: url(spritesmith-main-7.png);
- background-position: -1272px -1529px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Penguin-Golden {
- background-image: url(spritesmith-main-7.png);
- background-position: -1378px -1529px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Penguin-Red {
- background-image: url(spritesmith-main-7.png);
- background-position: -1484px -1529px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Penguin-Shade {
- background-image: url(spritesmith-main-7.png);
- background-position: -1590px -1529px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Penguin-Skeleton {
- background-image: url(spritesmith-main-7.png);
- background-position: -1696px 0px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Penguin-White {
- background-image: url(spritesmith-main-7.png);
- background-position: -1696px -106px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Penguin-Zombie {
- background-image: url(spritesmith-main-7.png);
- background-position: -1696px -212px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Phoenix-Base {
- background-image: url(spritesmith-main-7.png);
- background-position: -1696px -318px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Rat-Base {
- background-image: url(spritesmith-main-7.png);
- background-position: -1378px -530px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Rat-CottonCandyBlue {
background-image: url(spritesmith-main-7.png);
background-position: -1696px -424px;
width: 105px;
diff --git a/common/dist/sprites/spritesmith-main-7.png b/common/dist/sprites/spritesmith-main-7.png
index 4c5738a138..92d0019c29 100644
Binary files a/common/dist/sprites/spritesmith-main-7.png and b/common/dist/sprites/spritesmith-main-7.png differ
diff --git a/common/dist/sprites/spritesmith-main-8.css b/common/dist/sprites/spritesmith-main-8.css
index 3fb94d94a0..39fd3f7ca7 100644
--- a/common/dist/sprites/spritesmith-main-8.css
+++ b/common/dist/sprites/spritesmith-main-8.css
@@ -1,168 +1,222 @@
-.Mount_Body_Rat-CottonCandyPink {
- background-image: url(spritesmith-main-8.png);
- background-position: 0px -1452px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Rat-Desert {
- background-image: url(spritesmith-main-8.png);
- background-position: -1240px -530px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Rat-Golden {
- background-image: url(spritesmith-main-8.png);
- background-position: -106px -1452px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Rat-Red {
- background-image: url(spritesmith-main-8.png);
- background-position: -212px -1452px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Rat-Shade {
- background-image: url(spritesmith-main-8.png);
- background-position: -318px -1452px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Rat-Skeleton {
- background-image: url(spritesmith-main-8.png);
- background-position: -424px -1452px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Rat-White {
- background-image: url(spritesmith-main-8.png);
- background-position: -530px -1452px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Rat-Zombie {
- background-image: url(spritesmith-main-8.png);
- background-position: -514px -680px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Rock-Base {
- background-image: url(spritesmith-main-8.png);
- background-position: -620px -680px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Rock-CottonCandyBlue {
- background-image: url(spritesmith-main-8.png);
- background-position: -816px 0px;
- width: 105px;
- height: 105px;
-}
-.Mount_Body_Rock-CottonCandyPink {
+.Mount_Body_Penguin-Golden {
background-image: url(spritesmith-main-8.png);
background-position: -816px -106px;
width: 105px;
height: 105px;
}
-.Mount_Body_Rock-Desert {
+.Mount_Body_Penguin-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -212px -1240px;
+ background-position: -1240px -530px;
width: 105px;
height: 105px;
}
-.Mount_Body_Rock-Golden {
+.Mount_Body_Penguin-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -318px -1240px;
+ background-position: -816px -212px;
width: 105px;
height: 105px;
}
-.Mount_Body_Rock-Red {
+.Mount_Body_Penguin-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -424px -1240px;
+ background-position: -816px -318px;
width: 105px;
height: 105px;
}
-.Mount_Body_Rock-Shade {
+.Mount_Body_Penguin-White {
background-image: url(spritesmith-main-8.png);
- background-position: -530px -1240px;
+ background-position: -816px -424px;
width: 105px;
height: 105px;
}
-.Mount_Body_Rock-Skeleton {
+.Mount_Body_Penguin-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -636px -1240px;
+ background-position: -816px -530px;
width: 105px;
height: 105px;
}
-.Mount_Body_Rock-White {
+.Mount_Body_Phoenix-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -742px -1240px;
+ background-position: -816px -636px;
width: 105px;
height: 105px;
}
-.Mount_Body_Rock-Zombie {
+.Mount_Body_Rat-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -848px -1240px;
+ background-position: 0px -816px;
width: 105px;
height: 105px;
}
-.Mount_Body_Rooster-Base {
+.Mount_Body_Rat-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -954px -1240px;
+ background-position: -106px -816px;
width: 105px;
height: 105px;
}
-.Mount_Body_Rooster-CottonCandyBlue {
+.Mount_Body_Rat-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -1060px -1240px;
+ background-position: -212px -816px;
width: 105px;
height: 105px;
}
-.Mount_Body_Rooster-CottonCandyPink {
+.Mount_Body_Rat-Desert {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -318px -816px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rat-Golden {
background-image: url(spritesmith-main-8.png);
background-position: -1166px -1240px;
width: 105px;
height: 105px;
}
+.Mount_Body_Rat-Red {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -1346px 0px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rat-Shade {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -1346px -106px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rat-Skeleton {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -1346px -212px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rat-White {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -1346px -318px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rat-Zombie {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -1346px -424px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rock-Base {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -1346px -530px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rock-CottonCandyBlue {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -1346px -636px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rock-CottonCandyPink {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -1346px -742px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rock-Desert {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -1346px -848px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rock-Golden {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -212px -1452px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rock-Red {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -318px -1452px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rock-Shade {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -424px -1452px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rock-Skeleton {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -530px -1452px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rock-White {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -636px -1452px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rock-Zombie {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -742px -1452px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rooster-Base {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -848px -1452px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rooster-CottonCandyBlue {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -954px -1452px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Body_Rooster-CottonCandyPink {
+ background-image: url(spritesmith-main-8.png);
+ background-position: -1060px -1452px;
+ width: 105px;
+ height: 105px;
+}
.Mount_Body_Rooster-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -1452px -636px;
+ background-position: -1166px -1452px;
width: 105px;
height: 105px;
}
.Mount_Body_Rooster-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -1452px -742px;
+ background-position: -1272px -1452px;
width: 105px;
height: 105px;
}
.Mount_Body_Rooster-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -1452px -848px;
+ background-position: -1378px -1452px;
width: 105px;
height: 105px;
}
.Mount_Body_Rooster-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -1452px -954px;
+ background-position: -1558px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_Rooster-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -1452px -1060px;
+ background-position: -514px -680px;
width: 105px;
height: 105px;
}
.Mount_Body_Rooster-White {
background-image: url(spritesmith-main-8.png);
- background-position: -1452px -1166px;
+ background-position: -620px -680px;
width: 105px;
height: 105px;
}
.Mount_Body_Rooster-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -1452px -1272px;
+ background-position: -816px 0px;
width: 105px;
height: 105px;
}
@@ -228,361 +282,361 @@
}
.Mount_Body_Seahorse-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -816px -212px;
+ background-position: -424px -816px;
width: 105px;
height: 105px;
}
.Mount_Body_Seahorse-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -816px -318px;
+ background-position: -530px -816px;
width: 105px;
height: 105px;
}
.Mount_Body_Seahorse-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -816px -424px;
+ background-position: -636px -816px;
width: 105px;
height: 105px;
}
.Mount_Body_Seahorse-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -816px -530px;
+ background-position: -742px -816px;
width: 105px;
height: 105px;
}
.Mount_Body_Seahorse-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -816px -636px;
+ background-position: -922px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_Seahorse-Red {
background-image: url(spritesmith-main-8.png);
- background-position: 0px -816px;
+ background-position: -922px -106px;
width: 105px;
height: 105px;
}
.Mount_Body_Seahorse-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -106px -816px;
+ background-position: -922px -212px;
width: 105px;
height: 105px;
}
.Mount_Body_Seahorse-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -212px -816px;
+ background-position: -922px -318px;
width: 105px;
height: 105px;
}
.Mount_Body_Seahorse-White {
background-image: url(spritesmith-main-8.png);
- background-position: -318px -816px;
+ background-position: -922px -424px;
width: 105px;
height: 105px;
}
.Mount_Body_Seahorse-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -424px -816px;
+ background-position: -922px -530px;
width: 105px;
height: 105px;
}
.Mount_Body_Sheep-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -530px -816px;
+ background-position: -922px -636px;
width: 105px;
height: 105px;
}
.Mount_Body_Sheep-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -636px -816px;
+ background-position: -922px -742px;
width: 105px;
height: 105px;
}
.Mount_Body_Sheep-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -742px -816px;
+ background-position: 0px -922px;
width: 105px;
height: 105px;
}
.Mount_Body_Sheep-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -922px 0px;
+ background-position: -106px -922px;
width: 105px;
height: 105px;
}
.Mount_Body_Sheep-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -922px -106px;
+ background-position: -212px -922px;
width: 105px;
height: 105px;
}
.Mount_Body_Sheep-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -922px -212px;
+ background-position: -318px -922px;
width: 105px;
height: 105px;
}
.Mount_Body_Sheep-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -922px -318px;
+ background-position: -424px -922px;
width: 105px;
height: 105px;
}
.Mount_Body_Sheep-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -922px -424px;
+ background-position: -530px -922px;
width: 105px;
height: 105px;
}
.Mount_Body_Sheep-White {
background-image: url(spritesmith-main-8.png);
- background-position: -922px -530px;
+ background-position: -636px -922px;
width: 105px;
height: 105px;
}
.Mount_Body_Sheep-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -922px -636px;
+ background-position: -742px -922px;
width: 105px;
height: 105px;
}
.Mount_Body_Slime-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -922px -742px;
+ background-position: -848px -922px;
width: 105px;
height: 105px;
}
.Mount_Body_Slime-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: 0px -922px;
+ background-position: -1028px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_Slime-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -106px -922px;
+ background-position: -1028px -106px;
width: 105px;
height: 105px;
}
.Mount_Body_Slime-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -212px -922px;
+ background-position: -1028px -212px;
width: 105px;
height: 105px;
}
.Mount_Body_Slime-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -318px -922px;
+ background-position: -1028px -318px;
width: 105px;
height: 105px;
}
.Mount_Body_Slime-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -424px -922px;
+ background-position: -1028px -424px;
width: 105px;
height: 105px;
}
.Mount_Body_Slime-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -530px -922px;
+ background-position: -1028px -530px;
width: 105px;
height: 105px;
}
.Mount_Body_Slime-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -636px -922px;
+ background-position: -1028px -636px;
width: 105px;
height: 105px;
}
.Mount_Body_Slime-White {
background-image: url(spritesmith-main-8.png);
- background-position: -742px -922px;
+ background-position: -1028px -742px;
width: 105px;
height: 105px;
}
.Mount_Body_Slime-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -848px -922px;
+ background-position: -1028px -848px;
width: 105px;
height: 105px;
}
.Mount_Body_Snail-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -1028px 0px;
+ background-position: 0px -1028px;
width: 105px;
height: 105px;
}
.Mount_Body_Snail-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -1028px -106px;
+ background-position: -106px -1028px;
width: 105px;
height: 105px;
}
.Mount_Body_Snail-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -1028px -212px;
+ background-position: -212px -1028px;
width: 105px;
height: 105px;
}
.Mount_Body_Snail-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -1028px -318px;
+ background-position: -318px -1028px;
width: 105px;
height: 105px;
}
.Mount_Body_Snail-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -1028px -424px;
+ background-position: -424px -1028px;
width: 105px;
height: 105px;
}
.Mount_Body_Snail-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -1028px -530px;
+ background-position: -530px -1028px;
width: 105px;
height: 105px;
}
.Mount_Body_Snail-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -1028px -636px;
+ background-position: -636px -1028px;
width: 105px;
height: 105px;
}
.Mount_Body_Snail-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -1028px -742px;
+ background-position: -742px -1028px;
width: 105px;
height: 105px;
}
.Mount_Body_Snail-White {
background-image: url(spritesmith-main-8.png);
- background-position: -1028px -848px;
+ background-position: -848px -1028px;
width: 105px;
height: 105px;
}
.Mount_Body_Snail-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: 0px -1028px;
+ background-position: -954px -1028px;
width: 105px;
height: 105px;
}
.Mount_Body_Snake-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -106px -1028px;
+ background-position: -1134px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_Snake-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -212px -1028px;
+ background-position: -1134px -106px;
width: 105px;
height: 105px;
}
.Mount_Body_Snake-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -318px -1028px;
+ background-position: -1134px -212px;
width: 105px;
height: 105px;
}
.Mount_Body_Snake-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -424px -1028px;
+ background-position: -1134px -318px;
width: 105px;
height: 105px;
}
.Mount_Body_Snake-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -530px -1028px;
+ background-position: -1134px -424px;
width: 105px;
height: 105px;
}
.Mount_Body_Snake-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -636px -1028px;
+ background-position: -1134px -530px;
width: 105px;
height: 105px;
}
.Mount_Body_Snake-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -742px -1028px;
+ background-position: -1134px -636px;
width: 105px;
height: 105px;
}
.Mount_Body_Snake-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -848px -1028px;
+ background-position: -1134px -742px;
width: 105px;
height: 105px;
}
.Mount_Body_Snake-White {
background-image: url(spritesmith-main-8.png);
- background-position: -954px -1028px;
+ background-position: -1134px -848px;
width: 105px;
height: 105px;
}
.Mount_Body_Snake-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -1134px 0px;
+ background-position: -1134px -954px;
width: 105px;
height: 105px;
}
.Mount_Body_Spider-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -1134px -106px;
+ background-position: 0px -1134px;
width: 105px;
height: 105px;
}
.Mount_Body_Spider-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -1134px -212px;
+ background-position: -106px -1134px;
width: 105px;
height: 105px;
}
.Mount_Body_Spider-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -1134px -318px;
+ background-position: -212px -1134px;
width: 105px;
height: 105px;
}
.Mount_Body_Spider-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -1134px -424px;
+ background-position: -318px -1134px;
width: 105px;
height: 105px;
}
.Mount_Body_Spider-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -1134px -530px;
+ background-position: -424px -1134px;
width: 105px;
height: 105px;
}
.Mount_Body_Spider-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -1134px -636px;
+ background-position: -530px -1134px;
width: 105px;
height: 105px;
}
.Mount_Body_Spider-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -1134px -742px;
+ background-position: -636px -1134px;
width: 105px;
height: 105px;
}
.Mount_Body_Spider-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -1134px -848px;
+ background-position: -742px -1134px;
width: 105px;
height: 105px;
}
.Mount_Body_Spider-White {
background-image: url(spritesmith-main-8.png);
- background-position: -1134px -954px;
+ background-position: -848px -1134px;
width: 105px;
height: 105px;
}
.Mount_Body_Spider-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: 0px -1134px;
+ background-position: -954px -1134px;
width: 105px;
height: 105px;
}
@@ -648,325 +702,325 @@
}
.Mount_Body_TigerCub-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -106px -1134px;
+ background-position: -1060px -1134px;
width: 105px;
height: 105px;
}
.Mount_Body_TigerCub-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -212px -1134px;
+ background-position: -1240px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_TigerCub-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -318px -1134px;
+ background-position: -1240px -106px;
width: 105px;
height: 105px;
}
.Mount_Body_TigerCub-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -424px -1134px;
+ background-position: -1240px -212px;
width: 105px;
height: 105px;
}
.Mount_Body_TigerCub-Floral {
background-image: url(spritesmith-main-8.png);
- background-position: -530px -1134px;
+ background-position: -1240px -318px;
width: 105px;
height: 105px;
}
.Mount_Body_TigerCub-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -636px -1134px;
+ background-position: -1240px -424px;
width: 105px;
height: 105px;
}
.Mount_Body_TigerCub-Peppermint {
background-image: url(spritesmith-main-8.png);
- background-position: -742px -1134px;
+ background-position: -408px -680px;
width: 105px;
height: 105px;
}
.Mount_Body_TigerCub-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -848px -1134px;
+ background-position: -1240px -636px;
width: 105px;
height: 105px;
}
.Mount_Body_TigerCub-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -954px -1134px;
+ background-position: -1240px -742px;
width: 105px;
height: 105px;
}
.Mount_Body_TigerCub-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -1060px -1134px;
+ background-position: -1240px -848px;
width: 105px;
height: 105px;
}
.Mount_Body_TigerCub-Spooky {
background-image: url(spritesmith-main-8.png);
- background-position: -1240px 0px;
+ background-position: -1240px -954px;
width: 105px;
height: 105px;
}
.Mount_Body_TigerCub-White {
background-image: url(spritesmith-main-8.png);
- background-position: -1240px -106px;
+ background-position: -1240px -1060px;
width: 105px;
height: 105px;
}
.Mount_Body_TigerCub-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -1240px -212px;
+ background-position: 0px -1240px;
width: 105px;
height: 105px;
}
.Mount_Body_Treeling-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -1240px -318px;
+ background-position: -106px -1240px;
width: 105px;
height: 105px;
}
.Mount_Body_Treeling-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -1240px -424px;
+ background-position: -212px -1240px;
width: 105px;
height: 105px;
}
.Mount_Body_Treeling-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -408px -680px;
+ background-position: -318px -1240px;
width: 105px;
height: 105px;
}
.Mount_Body_Treeling-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -1240px -636px;
+ background-position: -424px -1240px;
width: 105px;
height: 105px;
}
.Mount_Body_Treeling-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -1240px -742px;
+ background-position: -530px -1240px;
width: 105px;
height: 105px;
}
.Mount_Body_Treeling-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -1240px -848px;
+ background-position: -636px -1240px;
width: 105px;
height: 105px;
}
.Mount_Body_Treeling-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -1240px -954px;
+ background-position: -742px -1240px;
width: 105px;
height: 105px;
}
.Mount_Body_Treeling-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -1240px -1060px;
+ background-position: -848px -1240px;
width: 105px;
height: 105px;
}
.Mount_Body_Treeling-White {
background-image: url(spritesmith-main-8.png);
- background-position: 0px -1240px;
+ background-position: -954px -1240px;
width: 105px;
height: 105px;
}
.Mount_Body_Treeling-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -106px -1240px;
+ background-position: -1060px -1240px;
width: 105px;
height: 105px;
}
.Mount_Body_Turkey-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -1346px 0px;
+ background-position: -1346px -954px;
width: 105px;
height: 105px;
}
.Mount_Body_Turtle-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -1346px -106px;
+ background-position: -1346px -1060px;
width: 105px;
height: 105px;
}
.Mount_Body_Turtle-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -1346px -212px;
+ background-position: -1346px -1166px;
width: 105px;
height: 105px;
}
.Mount_Body_Turtle-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -1346px -318px;
+ background-position: 0px -1346px;
width: 105px;
height: 105px;
}
.Mount_Body_Turtle-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -1346px -424px;
+ background-position: -106px -1346px;
width: 105px;
height: 105px;
}
.Mount_Body_Turtle-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -1346px -530px;
+ background-position: -212px -1346px;
width: 105px;
height: 105px;
}
.Mount_Body_Turtle-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -1346px -636px;
+ background-position: -318px -1346px;
width: 105px;
height: 105px;
}
.Mount_Body_Turtle-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -1346px -742px;
+ background-position: -424px -1346px;
width: 105px;
height: 105px;
}
.Mount_Body_Turtle-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -1346px -848px;
+ background-position: -530px -1346px;
width: 105px;
height: 105px;
}
.Mount_Body_Turtle-White {
background-image: url(spritesmith-main-8.png);
- background-position: -1346px -954px;
+ background-position: -636px -1346px;
width: 105px;
height: 105px;
}
.Mount_Body_Turtle-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -1346px -1060px;
+ background-position: -742px -1346px;
width: 105px;
height: 105px;
}
.Mount_Body_Unicorn-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -1346px -1166px;
+ background-position: -848px -1346px;
width: 105px;
height: 105px;
}
.Mount_Body_Unicorn-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: 0px -1346px;
+ background-position: -954px -1346px;
width: 105px;
height: 105px;
}
.Mount_Body_Unicorn-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -106px -1346px;
+ background-position: -1060px -1346px;
width: 105px;
height: 105px;
}
.Mount_Body_Unicorn-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -212px -1346px;
+ background-position: -1166px -1346px;
width: 105px;
height: 105px;
}
.Mount_Body_Unicorn-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -318px -1346px;
+ background-position: -1272px -1346px;
width: 105px;
height: 105px;
}
.Mount_Body_Unicorn-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -424px -1346px;
+ background-position: -1452px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_Unicorn-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -530px -1346px;
+ background-position: -1452px -106px;
width: 105px;
height: 105px;
}
.Mount_Body_Unicorn-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -636px -1346px;
+ background-position: -1452px -212px;
width: 105px;
height: 105px;
}
.Mount_Body_Unicorn-White {
background-image: url(spritesmith-main-8.png);
- background-position: -742px -1346px;
+ background-position: -1452px -318px;
width: 105px;
height: 105px;
}
.Mount_Body_Unicorn-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -848px -1346px;
+ background-position: -1452px -424px;
width: 105px;
height: 105px;
}
.Mount_Body_Whale-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -954px -1346px;
+ background-position: -1452px -530px;
width: 105px;
height: 105px;
}
.Mount_Body_Whale-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -1060px -1346px;
+ background-position: -1452px -636px;
width: 105px;
height: 105px;
}
.Mount_Body_Whale-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -1166px -1346px;
+ background-position: -1452px -742px;
width: 105px;
height: 105px;
}
.Mount_Body_Whale-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -1272px -1346px;
+ background-position: -1452px -848px;
width: 105px;
height: 105px;
}
.Mount_Body_Whale-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -1452px 0px;
+ background-position: -1452px -954px;
width: 105px;
height: 105px;
}
.Mount_Body_Whale-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -1452px -106px;
+ background-position: -1452px -1060px;
width: 105px;
height: 105px;
}
.Mount_Body_Whale-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -1452px -212px;
+ background-position: -1452px -1166px;
width: 105px;
height: 105px;
}
.Mount_Body_Whale-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -1452px -318px;
+ background-position: -1452px -1272px;
width: 105px;
height: 105px;
}
.Mount_Body_Whale-White {
background-image: url(spritesmith-main-8.png);
- background-position: -1452px -424px;
+ background-position: 0px -1452px;
width: 105px;
height: 105px;
}
.Mount_Body_Whale-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -1452px -530px;
+ background-position: -106px -1452px;
width: 105px;
height: 105px;
}
@@ -1050,311 +1104,257 @@
}
.Mount_Head_Axolotl-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -636px -1452px;
+ background-position: -1558px -106px;
width: 105px;
height: 105px;
}
.Mount_Head_Axolotl-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -742px -1452px;
+ background-position: -1558px -212px;
width: 105px;
height: 105px;
}
.Mount_Head_Axolotl-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -848px -1452px;
+ background-position: -1558px -318px;
width: 105px;
height: 105px;
}
.Mount_Head_Axolotl-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -954px -1452px;
+ background-position: -1558px -424px;
width: 105px;
height: 105px;
}
.Mount_Head_Axolotl-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -1060px -1452px;
+ background-position: -1558px -530px;
width: 105px;
height: 105px;
}
.Mount_Head_Axolotl-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -1166px -1452px;
+ background-position: -1558px -636px;
width: 105px;
height: 105px;
}
.Mount_Head_Axolotl-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -1272px -1452px;
+ background-position: -1558px -742px;
width: 105px;
height: 105px;
}
.Mount_Head_Axolotl-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -1378px -1452px;
+ background-position: -1558px -848px;
width: 105px;
height: 105px;
}
.Mount_Head_Axolotl-White {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px 0px;
+ background-position: -1558px -954px;
width: 105px;
height: 105px;
}
.Mount_Head_Axolotl-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px -106px;
+ background-position: -1558px -1060px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px -212px;
+ background-position: -1558px -1166px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px -318px;
+ background-position: -1558px -1272px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px -424px;
+ background-position: -1558px -1378px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px -530px;
+ background-position: 0px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-Floral {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px -636px;
+ background-position: -106px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px -742px;
+ background-position: -212px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-Peppermint {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px -848px;
+ background-position: -318px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-Polar {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px -954px;
+ background-position: -424px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px -1060px;
+ background-position: -530px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px -1166px;
+ background-position: -636px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px -1272px;
+ background-position: -742px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-Spooky {
background-image: url(spritesmith-main-8.png);
- background-position: -1558px -1378px;
+ background-position: -848px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-White {
background-image: url(spritesmith-main-8.png);
- background-position: 0px -1558px;
+ background-position: -954px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_BearCub-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -106px -1558px;
+ background-position: -1060px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_Bunny-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -212px -1558px;
+ background-position: -1166px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_Bunny-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -318px -1558px;
+ background-position: -1272px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_Bunny-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -424px -1558px;
+ background-position: -1378px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_Bunny-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -530px -1558px;
+ background-position: -1484px -1558px;
width: 105px;
height: 105px;
}
.Mount_Head_Bunny-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -636px -1558px;
+ background-position: -1664px 0px;
width: 105px;
height: 105px;
}
.Mount_Head_Bunny-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -742px -1558px;
+ background-position: -1664px -106px;
width: 105px;
height: 105px;
}
.Mount_Head_Bunny-Shade {
background-image: url(spritesmith-main-8.png);
- background-position: -848px -1558px;
+ background-position: -1664px -212px;
width: 105px;
height: 105px;
}
.Mount_Head_Bunny-Skeleton {
background-image: url(spritesmith-main-8.png);
- background-position: -954px -1558px;
+ background-position: -1664px -318px;
width: 105px;
height: 105px;
}
.Mount_Head_Bunny-White {
background-image: url(spritesmith-main-8.png);
- background-position: -1060px -1558px;
+ background-position: -1664px -424px;
width: 105px;
height: 105px;
}
.Mount_Head_Bunny-Zombie {
background-image: url(spritesmith-main-8.png);
- background-position: -1166px -1558px;
+ background-position: -1664px -530px;
width: 105px;
height: 105px;
}
.Mount_Head_Cactus-Base {
background-image: url(spritesmith-main-8.png);
- background-position: -1272px -1558px;
+ background-position: -1664px -636px;
width: 105px;
height: 105px;
}
.Mount_Head_Cactus-CottonCandyBlue {
background-image: url(spritesmith-main-8.png);
- background-position: -1378px -1558px;
+ background-position: -1664px -742px;
width: 105px;
height: 105px;
}
.Mount_Head_Cactus-CottonCandyPink {
background-image: url(spritesmith-main-8.png);
- background-position: -1484px -1558px;
+ background-position: -1664px -848px;
width: 105px;
height: 105px;
}
.Mount_Head_Cactus-Desert {
background-image: url(spritesmith-main-8.png);
- background-position: -1664px 0px;
+ background-position: -1664px -954px;
width: 105px;
height: 105px;
}
.Mount_Head_Cactus-Floral {
background-image: url(spritesmith-main-8.png);
- background-position: -1664px -106px;
+ background-position: -1664px -1060px;
width: 105px;
height: 105px;
}
.Mount_Head_Cactus-Golden {
background-image: url(spritesmith-main-8.png);
- background-position: -1664px -212px;
+ background-position: -1664px -1166px;
width: 105px;
height: 105px;
}
.Mount_Head_Cactus-Peppermint {
background-image: url(spritesmith-main-8.png);
- background-position: -1664px -318px;
+ background-position: -1664px -1272px;
width: 105px;
height: 105px;
}
.Mount_Head_Cactus-Red {
background-image: url(spritesmith-main-8.png);
- background-position: -1664px -424px;
+ background-position: -1664px -1378px;
width: 105px;
height: 105px;
}
.Mount_Head_Cactus-Shade {
- background-image: url(spritesmith-main-8.png);
- background-position: -1664px -530px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Cactus-Skeleton {
- background-image: url(spritesmith-main-8.png);
- background-position: -1664px -636px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Cactus-Spooky {
- background-image: url(spritesmith-main-8.png);
- background-position: -1664px -742px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Cactus-White {
- background-image: url(spritesmith-main-8.png);
- background-position: -1664px -848px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Cactus-Zombie {
- background-image: url(spritesmith-main-8.png);
- background-position: -1664px -954px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Cheetah-Base {
- background-image: url(spritesmith-main-8.png);
- background-position: -1664px -1060px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Cheetah-CottonCandyBlue {
- background-image: url(spritesmith-main-8.png);
- background-position: -1664px -1166px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Cheetah-CottonCandyPink {
- background-image: url(spritesmith-main-8.png);
- background-position: -1664px -1272px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Cheetah-Desert {
- background-image: url(spritesmith-main-8.png);
- background-position: -1664px -1378px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Cheetah-Golden {
background-image: url(spritesmith-main-8.png);
background-position: -1664px -1484px;
width: 105px;
diff --git a/common/dist/sprites/spritesmith-main-8.png b/common/dist/sprites/spritesmith-main-8.png
index 1e26e7b067..fd99bae754 100644
Binary files a/common/dist/sprites/spritesmith-main-8.png and b/common/dist/sprites/spritesmith-main-8.png differ
diff --git a/common/dist/sprites/spritesmith-main-9.css b/common/dist/sprites/spritesmith-main-9.css
index 84e06b904b..0220bc7988 100644
--- a/common/dist/sprites/spritesmith-main-9.css
+++ b/common/dist/sprites/spritesmith-main-9.css
@@ -1,1452 +1,1470 @@
+.Mount_Head_Cactus-Skeleton {
+ background-image: url(spritesmith-main-9.png);
+ background-position: -1060px -742px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Cactus-Spooky {
+ background-image: url(spritesmith-main-9.png);
+ background-position: -318px -1105px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Cactus-White {
+ background-image: url(spritesmith-main-9.png);
+ background-position: -1060px -848px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Cactus-Zombie {
+ background-image: url(spritesmith-main-9.png);
+ background-position: 0px -999px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Cheetah-Base {
+ background-image: url(spritesmith-main-9.png);
+ background-position: -106px -999px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Cheetah-CottonCandyBlue {
+ background-image: url(spritesmith-main-9.png);
+ background-position: -212px -999px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Cheetah-CottonCandyPink {
+ background-image: url(spritesmith-main-9.png);
+ background-position: -318px -999px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Cheetah-Desert {
+ background-image: url(spritesmith-main-9.png);
+ background-position: -424px -999px;
+ width: 105px;
+ height: 105px;
+}
+.Mount_Head_Cheetah-Golden {
+ background-image: url(spritesmith-main-9.png);
+ background-position: -318px -1211px;
+ width: 105px;
+ height: 105px;
+}
.Mount_Head_Cheetah-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -636px -935px;
+ background-position: -742px -1211px;
width: 105px;
height: 105px;
}
.Mount_Head_Cheetah-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -106px -1147px;
+ background-position: -848px -1211px;
width: 105px;
height: 105px;
}
.Mount_Head_Cheetah-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -742px -935px;
+ background-position: -1060px -424px;
width: 105px;
height: 105px;
}
.Mount_Head_Cheetah-White {
background-image: url(spritesmith-main-9.png);
- background-position: -424px -935px;
+ background-position: -1060px -530px;
width: 105px;
height: 105px;
}
.Mount_Head_Cheetah-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -530px -935px;
+ background-position: -1060px -636px;
width: 105px;
height: 105px;
}
.Mount_Head_Cuttlefish-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -484px -230px;
+ background-position: -530px -115px;
width: 105px;
height: 114px;
}
.Mount_Head_Cuttlefish-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -590px -230px;
+ background-position: -318px -239px;
width: 105px;
height: 114px;
}
.Mount_Head_Cuttlefish-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -590px -115px;
+ background-position: -212px 0px;
width: 105px;
height: 114px;
}
.Mount_Head_Cuttlefish-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: 0px -502px;
+ background-position: 0px -124px;
width: 105px;
height: 114px;
}
.Mount_Head_Cuttlefish-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -106px -387px;
+ background-position: -106px -124px;
width: 105px;
height: 114px;
}
.Mount_Head_Cuttlefish-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -378px 0px;
+ background-position: -212px -124px;
width: 105px;
height: 114px;
}
.Mount_Head_Cuttlefish-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -378px -115px;
+ background-position: -318px 0px;
width: 105px;
height: 114px;
}
.Mount_Head_Cuttlefish-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: 0px -272px;
+ background-position: -318px -115px;
width: 105px;
height: 114px;
}
.Mount_Head_Cuttlefish-White {
background-image: url(spritesmith-main-9.png);
- background-position: -106px -272px;
+ background-position: 0px -239px;
width: 105px;
height: 114px;
}
.Mount_Head_Cuttlefish-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -212px -272px;
+ background-position: -106px -239px;
width: 105px;
height: 114px;
}
.Mount_Head_Deer-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -848px -935px;
+ background-position: -954px -1211px;
width: 105px;
height: 105px;
}
.Mount_Head_Deer-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -954px -935px;
+ background-position: -109px -469px;
width: 105px;
height: 105px;
}
.Mount_Head_Deer-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -1120px 0px;
+ background-position: -215px -469px;
width: 105px;
height: 105px;
}
.Mount_Head_Deer-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -1120px -106px;
+ background-position: -321px -469px;
width: 105px;
height: 105px;
}
.Mount_Head_Deer-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -1120px -212px;
+ background-position: -427px -469px;
width: 105px;
height: 105px;
}
.Mount_Head_Deer-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -1120px -318px;
+ background-position: -636px 0px;
width: 105px;
height: 105px;
}
.Mount_Head_Deer-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -530px -1147px;
+ background-position: -636px -106px;
width: 105px;
height: 105px;
}
.Mount_Head_Deer-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -1332px -424px;
+ background-position: -636px -212px;
width: 105px;
height: 105px;
}
.Mount_Head_Deer-White {
background-image: url(spritesmith-main-9.png);
- background-position: -1332px -848px;
+ background-position: -636px -318px;
width: 105px;
height: 105px;
}
.Mount_Head_Deer-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -1332px -954px;
+ background-position: -636px -424px;
width: 105px;
height: 105px;
}
.Mount_Head_Dragon-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -1332px -1060px;
+ background-position: 0px -575px;
width: 105px;
height: 105px;
}
.Mount_Head_Dragon-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -1484px -1571px;
+ background-position: -106px -575px;
width: 105px;
height: 105px;
}
.Mount_Head_Dragon-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -1590px -1571px;
+ background-position: -212px -575px;
width: 105px;
height: 105px;
}
.Mount_Head_Dragon-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -427px -502px;
+ background-position: -318px -575px;
width: 105px;
height: 105px;
}
.Mount_Head_Dragon-Floral {
background-image: url(spritesmith-main-9.png);
- background-position: -533px -502px;
+ background-position: -424px -575px;
width: 105px;
height: 105px;
}
.Mount_Head_Dragon-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -696px 0px;
+ background-position: -530px -575px;
width: 105px;
height: 105px;
}
.Mount_Head_Dragon-Peppermint {
background-image: url(spritesmith-main-9.png);
- background-position: -696px -106px;
+ background-position: -636px -575px;
width: 105px;
height: 105px;
}
.Mount_Head_Dragon-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -696px -212px;
+ background-position: -742px 0px;
width: 105px;
height: 105px;
}
.Mount_Head_Dragon-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -696px -318px;
+ background-position: -742px -106px;
width: 105px;
height: 105px;
}
.Mount_Head_Dragon-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -696px -424px;
+ background-position: -742px -212px;
width: 105px;
height: 105px;
}
.Mount_Head_Dragon-Spooky {
background-image: url(spritesmith-main-9.png);
- background-position: 0px -617px;
+ background-position: -742px -318px;
width: 105px;
height: 105px;
}
.Mount_Head_Dragon-White {
background-image: url(spritesmith-main-9.png);
- background-position: -106px -617px;
+ background-position: -742px -424px;
width: 105px;
height: 105px;
}
.Mount_Head_Dragon-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -212px -617px;
+ background-position: -742px -530px;
width: 105px;
height: 105px;
}
.Mount_Head_Egg-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -318px -617px;
+ background-position: 0px -681px;
width: 105px;
height: 105px;
}
.Mount_Head_Egg-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -424px -617px;
+ background-position: -106px -681px;
width: 105px;
height: 105px;
}
.Mount_Head_Egg-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -530px -617px;
+ background-position: -212px -681px;
width: 105px;
height: 105px;
}
.Mount_Head_Egg-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -636px -617px;
+ background-position: -318px -681px;
width: 105px;
height: 105px;
}
.Mount_Head_Egg-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -802px 0px;
+ background-position: -424px -681px;
width: 105px;
height: 105px;
}
.Mount_Head_Egg-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -802px -106px;
+ background-position: -530px -681px;
width: 105px;
height: 105px;
}
.Mount_Head_Egg-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -802px -212px;
+ background-position: -636px -681px;
width: 105px;
height: 105px;
}
.Mount_Head_Egg-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -802px -318px;
+ background-position: -742px -681px;
width: 105px;
height: 105px;
}
.Mount_Head_Egg-White {
background-image: url(spritesmith-main-9.png);
- background-position: -802px -424px;
+ background-position: -848px 0px;
width: 105px;
height: 105px;
}
.Mount_Head_Egg-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -802px -530px;
+ background-position: -848px -106px;
width: 105px;
height: 105px;
}
.Mount_Head_Falcon-Base {
background-image: url(spritesmith-main-9.png);
- background-position: 0px -723px;
+ background-position: -848px -212px;
width: 105px;
height: 105px;
}
.Mount_Head_Falcon-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -106px -723px;
+ background-position: -848px -318px;
width: 105px;
height: 105px;
}
.Mount_Head_Falcon-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -212px -723px;
+ background-position: -848px -424px;
width: 105px;
height: 105px;
}
.Mount_Head_Falcon-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -318px -723px;
+ background-position: -848px -530px;
width: 105px;
height: 105px;
}
.Mount_Head_Falcon-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -424px -723px;
+ background-position: -848px -636px;
width: 105px;
height: 105px;
}
.Mount_Head_Falcon-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -530px -723px;
+ background-position: 0px -787px;
width: 105px;
height: 105px;
}
.Mount_Head_Falcon-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -636px -723px;
+ background-position: -106px -787px;
width: 105px;
height: 105px;
}
.Mount_Head_Falcon-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -742px -723px;
+ background-position: -212px -787px;
width: 105px;
height: 105px;
}
.Mount_Head_Falcon-White {
background-image: url(spritesmith-main-9.png);
- background-position: -908px 0px;
+ background-position: -318px -787px;
width: 105px;
height: 105px;
}
.Mount_Head_Falcon-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -908px -106px;
+ background-position: -424px -787px;
width: 105px;
height: 105px;
}
.Mount_Head_FlyingPig-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -908px -212px;
+ background-position: -530px -787px;
width: 105px;
height: 105px;
}
.Mount_Head_FlyingPig-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -908px -318px;
+ background-position: -636px -787px;
width: 105px;
height: 105px;
}
.Mount_Head_FlyingPig-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -908px -424px;
+ background-position: -742px -787px;
width: 105px;
height: 105px;
}
.Mount_Head_FlyingPig-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -908px -530px;
+ background-position: -848px -787px;
width: 105px;
height: 105px;
}
.Mount_Head_FlyingPig-Floral {
background-image: url(spritesmith-main-9.png);
- background-position: -908px -636px;
+ background-position: -954px 0px;
width: 105px;
height: 105px;
}
.Mount_Head_FlyingPig-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: 0px -829px;
+ background-position: -954px -106px;
width: 105px;
height: 105px;
}
.Mount_Head_FlyingPig-Peppermint {
background-image: url(spritesmith-main-9.png);
- background-position: -106px -829px;
+ background-position: -954px -212px;
width: 105px;
height: 105px;
}
.Mount_Head_FlyingPig-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -212px -829px;
+ background-position: -954px -318px;
width: 105px;
height: 105px;
}
.Mount_Head_FlyingPig-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -318px -829px;
+ background-position: -954px -424px;
width: 105px;
height: 105px;
}
.Mount_Head_FlyingPig-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -424px -829px;
+ background-position: -954px -530px;
width: 105px;
height: 105px;
}
.Mount_Head_FlyingPig-Spooky {
background-image: url(spritesmith-main-9.png);
- background-position: -530px -829px;
+ background-position: -954px -636px;
width: 105px;
height: 105px;
}
.Mount_Head_FlyingPig-White {
background-image: url(spritesmith-main-9.png);
- background-position: -636px -829px;
+ background-position: -954px -742px;
width: 105px;
height: 105px;
}
.Mount_Head_FlyingPig-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -742px -829px;
+ background-position: 0px -893px;
width: 105px;
height: 105px;
}
.Mount_Head_Fox-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -848px -829px;
+ background-position: -106px -893px;
width: 105px;
height: 105px;
}
.Mount_Head_Fox-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -1014px 0px;
+ background-position: -212px -893px;
width: 105px;
height: 105px;
}
.Mount_Head_Fox-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -1014px -106px;
+ background-position: -318px -893px;
width: 105px;
height: 105px;
}
.Mount_Head_Fox-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -1014px -212px;
+ background-position: -424px -893px;
width: 105px;
height: 105px;
}
.Mount_Head_Fox-Floral {
background-image: url(spritesmith-main-9.png);
- background-position: -1014px -318px;
+ background-position: -530px -893px;
width: 105px;
height: 105px;
}
.Mount_Head_Fox-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -1014px -424px;
+ background-position: -636px -893px;
width: 105px;
height: 105px;
}
.Mount_Head_Fox-Peppermint {
background-image: url(spritesmith-main-9.png);
- background-position: -1014px -530px;
+ background-position: -742px -893px;
width: 105px;
height: 105px;
}
.Mount_Head_Fox-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -1014px -636px;
+ background-position: -848px -893px;
width: 105px;
height: 105px;
}
.Mount_Head_Fox-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -1014px -742px;
+ background-position: -954px -893px;
width: 105px;
height: 105px;
}
.Mount_Head_Fox-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: 0px -935px;
+ background-position: -1060px 0px;
width: 105px;
height: 105px;
}
.Mount_Head_Fox-Spooky {
background-image: url(spritesmith-main-9.png);
- background-position: -106px -935px;
+ background-position: -1060px -106px;
width: 105px;
height: 105px;
}
.Mount_Head_Fox-White {
background-image: url(spritesmith-main-9.png);
- background-position: -212px -935px;
+ background-position: -1060px -212px;
width: 105px;
height: 105px;
}
.Mount_Head_Fox-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -318px -935px;
+ background-position: -1060px -318px;
width: 105px;
height: 105px;
}
.Mount_Head_Frog-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -318px -272px;
+ background-position: -212px -239px;
width: 105px;
height: 114px;
}
.Mount_Head_Frog-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -484px 0px;
+ background-position: -106px 0px;
width: 105px;
height: 114px;
}
.Mount_Head_Frog-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -484px -115px;
+ background-position: -424px 0px;
width: 105px;
height: 114px;
}
.Mount_Head_Frog-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -106px -502px;
+ background-position: -424px -115px;
width: 105px;
height: 114px;
}
.Mount_Head_Frog-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: 0px -387px;
+ background-position: -424px -230px;
width: 105px;
height: 114px;
}
.Mount_Head_Frog-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -272px -124px;
+ background-position: 0px -354px;
width: 105px;
height: 114px;
}
.Mount_Head_Frog-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -212px -387px;
+ background-position: -106px -354px;
width: 105px;
height: 114px;
}
.Mount_Head_Frog-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -318px -387px;
+ background-position: -212px -354px;
width: 105px;
height: 114px;
}
.Mount_Head_Frog-White {
background-image: url(spritesmith-main-9.png);
- background-position: -424px -387px;
+ background-position: -318px -354px;
width: 105px;
height: 114px;
}
.Mount_Head_Frog-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -590px 0px;
+ background-position: -424px -354px;
width: 105px;
height: 114px;
}
.Mount_Head_Gryphon-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -1120px -424px;
+ background-position: -530px -999px;
width: 105px;
height: 105px;
}
.Mount_Head_Gryphon-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -1120px -530px;
+ background-position: -636px -999px;
width: 105px;
height: 105px;
}
.Mount_Head_Gryphon-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -1120px -636px;
+ background-position: -742px -999px;
width: 105px;
height: 105px;
}
.Mount_Head_Gryphon-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -1120px -742px;
+ background-position: -848px -999px;
width: 105px;
height: 105px;
}
.Mount_Head_Gryphon-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -1120px -848px;
+ background-position: -954px -999px;
width: 105px;
height: 105px;
}
.Mount_Head_Gryphon-Red {
background-image: url(spritesmith-main-9.png);
- background-position: 0px -1041px;
+ background-position: -1060px -999px;
width: 105px;
height: 105px;
}
.Mount_Head_Gryphon-RoyalPurple {
background-image: url(spritesmith-main-9.png);
- background-position: -106px -1041px;
+ background-position: -1166px 0px;
width: 105px;
height: 105px;
}
.Mount_Head_Gryphon-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -212px -1041px;
+ background-position: -1166px -106px;
width: 105px;
height: 105px;
}
.Mount_Head_Gryphon-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -318px -1041px;
+ background-position: -1166px -212px;
width: 105px;
height: 105px;
}
.Mount_Head_Gryphon-White {
background-image: url(spritesmith-main-9.png);
- background-position: -424px -1041px;
+ background-position: -1166px -318px;
width: 105px;
height: 105px;
}
.Mount_Head_Gryphon-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -530px -1041px;
+ background-position: -1166px -424px;
width: 105px;
height: 105px;
}
.Mount_Head_Hedgehog-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -636px -1041px;
+ background-position: -1166px -530px;
width: 105px;
height: 105px;
}
.Mount_Head_Hedgehog-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -742px -1041px;
+ background-position: -1166px -636px;
width: 105px;
height: 105px;
}
.Mount_Head_Hedgehog-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -848px -1041px;
+ background-position: -1166px -742px;
width: 105px;
height: 105px;
}
.Mount_Head_Hedgehog-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -954px -1041px;
+ background-position: -1166px -848px;
width: 105px;
height: 105px;
}
.Mount_Head_Hedgehog-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -1060px -1041px;
+ background-position: -1166px -954px;
width: 105px;
height: 105px;
}
.Mount_Head_Hedgehog-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -1226px 0px;
+ background-position: 0px -1105px;
width: 105px;
height: 105px;
}
.Mount_Head_Hedgehog-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -1226px -106px;
+ background-position: -106px -1105px;
width: 105px;
height: 105px;
}
.Mount_Head_Hedgehog-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -1226px -212px;
+ background-position: -212px -1105px;
width: 105px;
height: 105px;
}
.Mount_Head_Hedgehog-White {
background-image: url(spritesmith-main-9.png);
- background-position: -1226px -318px;
+ background-position: -530px -341px;
width: 105px;
height: 105px;
}
.Mount_Head_Hedgehog-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -1226px -424px;
+ background-position: -424px -1105px;
width: 105px;
height: 105px;
}
.Mount_Head_Horse-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -1226px -530px;
+ background-position: -530px -1105px;
width: 105px;
height: 105px;
}
.Mount_Head_Horse-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -1226px -636px;
+ background-position: -636px -1105px;
width: 105px;
height: 105px;
}
.Mount_Head_Horse-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -1226px -742px;
+ background-position: -742px -1105px;
width: 105px;
height: 105px;
}
.Mount_Head_Horse-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -1226px -848px;
+ background-position: -848px -1105px;
width: 105px;
height: 105px;
}
.Mount_Head_Horse-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -1226px -954px;
+ background-position: -954px -1105px;
width: 105px;
height: 105px;
}
.Mount_Head_Horse-Red {
background-image: url(spritesmith-main-9.png);
- background-position: 0px -1147px;
+ background-position: -1060px -1105px;
width: 105px;
height: 105px;
}
.Mount_Head_Horse-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -1756px 0px;
+ background-position: -1166px -1105px;
width: 105px;
height: 105px;
}
.Mount_Head_Horse-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -212px -1147px;
+ background-position: -1272px 0px;
width: 105px;
height: 105px;
}
.Mount_Head_Horse-White {
background-image: url(spritesmith-main-9.png);
- background-position: -318px -1147px;
+ background-position: -1272px -106px;
width: 105px;
height: 105px;
}
.Mount_Head_Horse-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -424px -1147px;
+ background-position: -1272px -212px;
width: 105px;
height: 105px;
}
.Mount_Head_JackOLantern-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -1756px -106px;
+ background-position: -1696px -530px;
width: 90px;
height: 105px;
}
.Mount_Head_LionCub-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -636px -1147px;
+ background-position: -1272px -424px;
width: 105px;
height: 105px;
}
.Mount_Head_LionCub-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -742px -1147px;
+ background-position: -1272px -530px;
width: 105px;
height: 105px;
}
.Mount_Head_LionCub-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -848px -1147px;
+ background-position: -1272px -636px;
width: 105px;
height: 105px;
}
.Mount_Head_LionCub-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -954px -1147px;
+ background-position: -1272px -742px;
width: 105px;
height: 105px;
}
.Mount_Head_LionCub-Ethereal {
background-image: url(spritesmith-main-9.png);
- background-position: -1060px -1147px;
+ background-position: -1272px -848px;
width: 105px;
height: 105px;
}
.Mount_Head_LionCub-Floral {
background-image: url(spritesmith-main-9.png);
- background-position: -1166px -1147px;
+ background-position: -1272px -954px;
width: 105px;
height: 105px;
}
.Mount_Head_LionCub-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -1332px 0px;
+ background-position: -1272px -1060px;
width: 105px;
height: 105px;
}
.Mount_Head_LionCub-Peppermint {
background-image: url(spritesmith-main-9.png);
- background-position: -1332px -106px;
+ background-position: 0px -1211px;
width: 105px;
height: 105px;
}
.Mount_Head_LionCub-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -1332px -212px;
+ background-position: -106px -1211px;
width: 105px;
height: 105px;
}
.Mount_Head_LionCub-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -1332px -318px;
+ background-position: -212px -1211px;
width: 105px;
height: 105px;
}
.Mount_Head_LionCub-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -212px -502px;
+ background-position: -530px -230px;
width: 105px;
height: 110px;
}
.Mount_Head_LionCub-Spooky {
background-image: url(spritesmith-main-9.png);
- background-position: -1332px -530px;
+ background-position: -424px -1211px;
width: 105px;
height: 105px;
}
.Mount_Head_LionCub-White {
background-image: url(spritesmith-main-9.png);
- background-position: -1332px -636px;
+ background-position: -530px -1211px;
width: 105px;
height: 105px;
}
.Mount_Head_LionCub-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -1332px -742px;
+ background-position: -636px -1211px;
width: 105px;
height: 105px;
}
.Mount_Head_MagicalBee-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -590px -345px;
+ background-position: -530px 0px;
width: 105px;
height: 114px;
}
.Mount_Head_Mammoth-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -272px 0px;
+ background-position: 0px 0px;
width: 105px;
height: 123px;
}
.Mount_Head_MantisShrimp-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -318px -502px;
+ background-position: 0px -469px;
width: 108px;
height: 105px;
}
.Mount_Head_Monkey-Base {
background-image: url(spritesmith-main-9.png);
- background-position: 0px -1253px;
+ background-position: -1060px -1211px;
width: 105px;
height: 105px;
}
.Mount_Head_Monkey-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -106px -1253px;
+ background-position: -1166px -1211px;
width: 105px;
height: 105px;
}
.Mount_Head_Monkey-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -212px -1253px;
+ background-position: -1272px -1211px;
width: 105px;
height: 105px;
}
.Mount_Head_Monkey-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -318px -1253px;
+ background-position: -1378px 0px;
width: 105px;
height: 105px;
}
.Mount_Head_Monkey-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -424px -1253px;
+ background-position: -1378px -106px;
width: 105px;
height: 105px;
}
.Mount_Head_Monkey-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -530px -1253px;
+ background-position: -1378px -212px;
width: 105px;
height: 105px;
}
.Mount_Head_Monkey-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -636px -1253px;
+ background-position: -1378px -318px;
width: 105px;
height: 105px;
}
.Mount_Head_Monkey-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -742px -1253px;
+ background-position: -1378px -424px;
width: 105px;
height: 105px;
}
.Mount_Head_Monkey-White {
background-image: url(spritesmith-main-9.png);
- background-position: -848px -1253px;
+ background-position: -1378px -530px;
width: 105px;
height: 105px;
}
.Mount_Head_Monkey-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -954px -1253px;
+ background-position: -1378px -636px;
width: 105px;
height: 105px;
}
.Mount_Head_Octopus-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -1060px -1253px;
+ background-position: -1378px -742px;
width: 105px;
height: 105px;
}
.Mount_Head_Octopus-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -1166px -1253px;
+ background-position: -1378px -848px;
width: 105px;
height: 105px;
}
.Mount_Head_Octopus-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -1272px -1253px;
+ background-position: -1378px -954px;
width: 105px;
height: 105px;
}
.Mount_Head_Octopus-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -1438px 0px;
+ background-position: -1378px -1060px;
width: 105px;
height: 105px;
}
.Mount_Head_Octopus-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -1438px -106px;
+ background-position: -1378px -1166px;
width: 105px;
height: 105px;
}
.Mount_Head_Octopus-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -1438px -212px;
+ background-position: 0px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Octopus-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -1438px -318px;
+ background-position: -106px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Octopus-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -1438px -424px;
+ background-position: -212px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Octopus-White {
background-image: url(spritesmith-main-9.png);
- background-position: -1438px -530px;
+ background-position: -318px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Octopus-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -1438px -636px;
+ background-position: -424px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Orca-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -1438px -742px;
+ background-position: -530px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Owl-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -1438px -848px;
+ background-position: -636px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Owl-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -1438px -954px;
+ background-position: -742px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Owl-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -1438px -1060px;
+ background-position: -848px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Owl-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -1438px -1166px;
+ background-position: -954px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Owl-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: 0px -1359px;
+ background-position: -1060px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Owl-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -106px -1359px;
+ background-position: -1166px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Owl-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -212px -1359px;
+ background-position: -1272px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Owl-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -318px -1359px;
+ background-position: -1378px -1317px;
width: 105px;
height: 105px;
}
.Mount_Head_Owl-White {
background-image: url(spritesmith-main-9.png);
- background-position: -424px -1359px;
+ background-position: -1484px 0px;
width: 105px;
height: 105px;
}
.Mount_Head_Owl-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -530px -1359px;
+ background-position: -1484px -106px;
width: 105px;
height: 105px;
}
.Mount_Head_PandaCub-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -636px -1359px;
+ background-position: -1484px -212px;
width: 105px;
height: 105px;
}
.Mount_Head_PandaCub-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -742px -1359px;
+ background-position: -1484px -318px;
width: 105px;
height: 105px;
}
.Mount_Head_PandaCub-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -848px -1359px;
+ background-position: -1484px -424px;
width: 105px;
height: 105px;
}
.Mount_Head_PandaCub-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -954px -1359px;
+ background-position: -1484px -530px;
width: 105px;
height: 105px;
}
.Mount_Head_PandaCub-Floral {
background-image: url(spritesmith-main-9.png);
- background-position: -1060px -1359px;
+ background-position: -1484px -636px;
width: 105px;
height: 105px;
}
.Mount_Head_PandaCub-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -1166px -1359px;
+ background-position: -1484px -742px;
width: 105px;
height: 105px;
}
.Mount_Head_PandaCub-Peppermint {
background-image: url(spritesmith-main-9.png);
- background-position: -1272px -1359px;
+ background-position: -1484px -848px;
width: 105px;
height: 105px;
}
.Mount_Head_PandaCub-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -1378px -1359px;
+ background-position: -1484px -954px;
width: 105px;
height: 105px;
}
.Mount_Head_PandaCub-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -1544px 0px;
+ background-position: -1484px -1060px;
width: 105px;
height: 105px;
}
.Mount_Head_PandaCub-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -1544px -106px;
+ background-position: -1484px -1166px;
width: 105px;
height: 105px;
}
.Mount_Head_PandaCub-Spooky {
background-image: url(spritesmith-main-9.png);
- background-position: -1544px -212px;
+ background-position: -1484px -1272px;
width: 105px;
height: 105px;
}
.Mount_Head_PandaCub-White {
background-image: url(spritesmith-main-9.png);
- background-position: -1544px -318px;
+ background-position: 0px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_PandaCub-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -1544px -424px;
+ background-position: -106px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Parrot-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -1544px -530px;
+ background-position: -212px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Parrot-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -1544px -636px;
+ background-position: -318px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Parrot-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -1544px -742px;
+ background-position: -424px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Parrot-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -1544px -848px;
+ background-position: -530px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Parrot-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -1544px -954px;
+ background-position: -636px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Parrot-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -1544px -1060px;
+ background-position: -742px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Parrot-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -1544px -1166px;
+ background-position: -848px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Parrot-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -1544px -1272px;
+ background-position: -954px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Parrot-White {
background-image: url(spritesmith-main-9.png);
- background-position: 0px -1465px;
+ background-position: -1060px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Parrot-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -106px -1465px;
+ background-position: -1166px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Penguin-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -212px -1465px;
+ background-position: -1272px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Penguin-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -318px -1465px;
+ background-position: -1378px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Penguin-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -424px -1465px;
+ background-position: -1484px -1423px;
width: 105px;
height: 105px;
}
.Mount_Head_Penguin-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -530px -1465px;
+ background-position: -1590px 0px;
width: 105px;
height: 105px;
}
.Mount_Head_Penguin-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -636px -1465px;
+ background-position: -1590px -106px;
width: 105px;
height: 105px;
}
.Mount_Head_Penguin-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -742px -1465px;
+ background-position: -1590px -212px;
width: 105px;
height: 105px;
}
.Mount_Head_Penguin-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -848px -1465px;
+ background-position: -1590px -318px;
width: 105px;
height: 105px;
}
.Mount_Head_Penguin-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -954px -1465px;
+ background-position: -1590px -424px;
width: 105px;
height: 105px;
}
.Mount_Head_Penguin-White {
background-image: url(spritesmith-main-9.png);
- background-position: -1060px -1465px;
+ background-position: -1590px -530px;
width: 105px;
height: 105px;
}
.Mount_Head_Penguin-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -1166px -1465px;
+ background-position: -1590px -636px;
width: 105px;
height: 105px;
}
.Mount_Head_Phoenix-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -1272px -1465px;
+ background-position: -1590px -742px;
width: 105px;
height: 105px;
}
.Mount_Head_Rat-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -1378px -1465px;
+ background-position: -1590px -848px;
width: 105px;
height: 105px;
}
.Mount_Head_Rat-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -1484px -1465px;
+ background-position: -1590px -954px;
width: 105px;
height: 105px;
}
.Mount_Head_Rat-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px 0px;
+ background-position: -1590px -1060px;
width: 105px;
height: 105px;
}
.Mount_Head_Rat-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px -106px;
+ background-position: -1590px -1166px;
width: 105px;
height: 105px;
}
.Mount_Head_Rat-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px -212px;
+ background-position: -1590px -1272px;
width: 105px;
height: 105px;
}
.Mount_Head_Rat-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px -318px;
+ background-position: -1590px -1378px;
width: 105px;
height: 105px;
}
.Mount_Head_Rat-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px -424px;
+ background-position: 0px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rat-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px -530px;
+ background-position: -106px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rat-White {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px -636px;
+ background-position: -212px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rat-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px -742px;
+ background-position: -318px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rock-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px -848px;
+ background-position: -424px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rock-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px -954px;
+ background-position: -530px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rock-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px -1060px;
+ background-position: -636px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rock-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px -1166px;
+ background-position: -742px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rock-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px -1272px;
+ background-position: -848px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rock-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -1650px -1378px;
+ background-position: -954px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rock-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: 0px -1571px;
+ background-position: -1060px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rock-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -106px -1571px;
+ background-position: -1166px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rock-White {
background-image: url(spritesmith-main-9.png);
- background-position: -212px -1571px;
+ background-position: -1272px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rock-Zombie {
background-image: url(spritesmith-main-9.png);
- background-position: -318px -1571px;
+ background-position: -1378px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rooster-Base {
background-image: url(spritesmith-main-9.png);
- background-position: -424px -1571px;
+ background-position: -1484px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rooster-CottonCandyBlue {
background-image: url(spritesmith-main-9.png);
- background-position: -530px -1571px;
+ background-position: -1590px -1529px;
width: 105px;
height: 105px;
}
.Mount_Head_Rooster-CottonCandyPink {
background-image: url(spritesmith-main-9.png);
- background-position: -636px -1571px;
+ background-position: -1696px 0px;
width: 105px;
height: 105px;
}
.Mount_Head_Rooster-Desert {
background-image: url(spritesmith-main-9.png);
- background-position: -742px -1571px;
+ background-position: -1696px -106px;
width: 105px;
height: 105px;
}
.Mount_Head_Rooster-Golden {
background-image: url(spritesmith-main-9.png);
- background-position: -848px -1571px;
+ background-position: -1696px -212px;
width: 105px;
height: 105px;
}
.Mount_Head_Rooster-Red {
background-image: url(spritesmith-main-9.png);
- background-position: -954px -1571px;
+ background-position: -1696px -318px;
width: 105px;
height: 105px;
}
.Mount_Head_Rooster-Shade {
background-image: url(spritesmith-main-9.png);
- background-position: -1060px -1571px;
+ background-position: -1272px -318px;
width: 105px;
height: 105px;
}
.Mount_Head_Rooster-Skeleton {
background-image: url(spritesmith-main-9.png);
- background-position: -1166px -1571px;
+ background-position: -1696px -424px;
width: 105px;
height: 105px;
}
-.Mount_Head_Rooster-White {
- background-image: url(spritesmith-main-9.png);
- background-position: -1272px -1571px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Rooster-Zombie {
- background-image: url(spritesmith-main-9.png);
- background-position: -1378px -1571px;
- width: 105px;
- height: 105px;
-}
-.Mount_Head_Sabretooth-Base {
- background-image: url(spritesmith-main-9.png);
- background-position: 0px -136px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Sabretooth-CottonCandyBlue {
- background-image: url(spritesmith-main-9.png);
- background-position: -136px 0px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Sabretooth-CottonCandyPink {
- background-image: url(spritesmith-main-9.png);
- background-position: -136px -136px;
- width: 135px;
- height: 135px;
-}
-.Mount_Head_Sabretooth-Desert {
- background-image: url(spritesmith-main-9.png);
- background-position: 0px 0px;
- width: 135px;
- height: 135px;
-}
diff --git a/common/dist/sprites/spritesmith-main-9.png b/common/dist/sprites/spritesmith-main-9.png
index c0d8bf77fb..9f49bf6844 100644
Binary files a/common/dist/sprites/spritesmith-main-9.png and b/common/dist/sprites/spritesmith-main-9.png differ
diff --git a/common/img/sprites/spritesmith/backgrounds/background_idyllic_cabin.png b/common/img/sprites/spritesmith/backgrounds/background_idyllic_cabin.png
new file mode 100644
index 0000000000..5d4c3ae1a4
Binary files /dev/null and b/common/img/sprites/spritesmith/backgrounds/background_idyllic_cabin.png differ
diff --git a/common/img/sprites/spritesmith/backgrounds/background_mountain_pyramid.png b/common/img/sprites/spritesmith/backgrounds/background_mountain_pyramid.png
new file mode 100644
index 0000000000..2747511646
Binary files /dev/null and b/common/img/sprites/spritesmith/backgrounds/background_mountain_pyramid.png differ
diff --git a/common/img/sprites/spritesmith/backgrounds/background_stormy_ship.png b/common/img/sprites/spritesmith/backgrounds/background_stormy_ship.png
new file mode 100644
index 0000000000..06527d4784
Binary files /dev/null and b/common/img/sprites/spritesmith/backgrounds/background_stormy_ship.png differ
diff --git a/common/img/sprites/spritesmith/gear/armoire/broad_armor_armoire_falconerArmor.png b/common/img/sprites/spritesmith/gear/armoire/broad_armor_armoire_falconerArmor.png
new file mode 100644
index 0000000000..1608dd42ea
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/broad_armor_armoire_falconerArmor.png differ
diff --git a/common/img/sprites/spritesmith/gear/armoire/head_armoire_falconerCap.png b/common/img/sprites/spritesmith/gear/armoire/head_armoire_falconerCap.png
new file mode 100644
index 0000000000..f0e646645e
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/head_armoire_falconerCap.png differ
diff --git a/common/img/sprites/spritesmith/gear/armoire/shield_armoire_perchingFalcon.png b/common/img/sprites/spritesmith/gear/armoire/shield_armoire_perchingFalcon.png
new file mode 100644
index 0000000000..463c57d788
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/shield_armoire_perchingFalcon.png differ
diff --git a/common/img/sprites/spritesmith/gear/armoire/shop/shop_armor_armoire_falconerArmor.png b/common/img/sprites/spritesmith/gear/armoire/shop/shop_armor_armoire_falconerArmor.png
new file mode 100644
index 0000000000..ba755b236d
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/shop/shop_armor_armoire_falconerArmor.png differ
diff --git a/common/img/sprites/spritesmith/gear/armoire/shop/shop_head_armoire_falconerCap.png b/common/img/sprites/spritesmith/gear/armoire/shop/shop_head_armoire_falconerCap.png
new file mode 100644
index 0000000000..cd40af5723
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/shop/shop_head_armoire_falconerCap.png differ
diff --git a/common/img/sprites/spritesmith/gear/armoire/shop/shop_shield_armoire_perchingFalcon.png b/common/img/sprites/spritesmith/gear/armoire/shop/shop_shield_armoire_perchingFalcon.png
new file mode 100644
index 0000000000..262b0177b1
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/shop/shop_shield_armoire_perchingFalcon.png differ
diff --git a/common/img/sprites/spritesmith/gear/armoire/slim_armor_armoire_falconerArmor.png b/common/img/sprites/spritesmith/gear/armoire/slim_armor_armoire_falconerArmor.png
new file mode 100644
index 0000000000..d905267343
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/slim_armor_armoire_falconerArmor.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/mystery_201607/broad_armor_mystery_201607.png b/common/img/sprites/spritesmith/gear/events/mystery_201607/broad_armor_mystery_201607.png
new file mode 100644
index 0000000000..20c590dd5c
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/mystery_201607/broad_armor_mystery_201607.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/mystery_201607/head_mystery_201607.png b/common/img/sprites/spritesmith/gear/events/mystery_201607/head_mystery_201607.png
new file mode 100644
index 0000000000..abfd0e19ad
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/mystery_201607/head_mystery_201607.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/mystery_201607/shop_armor_mystery_201607.png b/common/img/sprites/spritesmith/gear/events/mystery_201607/shop_armor_mystery_201607.png
new file mode 100644
index 0000000000..fdf2302513
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/mystery_201607/shop_armor_mystery_201607.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/mystery_201607/shop_head_mystery_201607.png b/common/img/sprites/spritesmith/gear/events/mystery_201607/shop_head_mystery_201607.png
new file mode 100644
index 0000000000..3a0976c9a9
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/mystery_201607/shop_head_mystery_201607.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/mystery_201607/slim_armor_mystery_201607.png b/common/img/sprites/spritesmith/gear/events/mystery_201607/slim_armor_mystery_201607.png
new file mode 100644
index 0000000000..9944f54172
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/mystery_201607/slim_armor_mystery_201607.png differ
diff --git a/common/img/sprites/spritesmith/npcs/npc_alex.png b/common/img/sprites/spritesmith/npcs/npc_alex.png
index b5175c697b..e904970937 100644
Binary files a/common/img/sprites/spritesmith/npcs/npc_alex.png and b/common/img/sprites/spritesmith/npcs/npc_alex.png differ
diff --git a/common/img/sprites/spritesmith/npcs/npc_bailey.png b/common/img/sprites/spritesmith/npcs/npc_bailey.png
index f6ce232f91..f6e58617a8 100644
Binary files a/common/img/sprites/spritesmith/npcs/npc_bailey.png and b/common/img/sprites/spritesmith/npcs/npc_bailey.png differ
diff --git a/common/img/sprites/spritesmith/npcs/npc_daniel.png b/common/img/sprites/spritesmith/npcs/npc_daniel.png
index 4e79603122..b12dd9e254 100644
Binary files a/common/img/sprites/spritesmith/npcs/npc_daniel.png and b/common/img/sprites/spritesmith/npcs/npc_daniel.png differ
diff --git a/common/img/sprites/spritesmith/npcs/npc_ian.png b/common/img/sprites/spritesmith/npcs/npc_ian.png
deleted file mode 100644
index db4b9883bf..0000000000
Binary files a/common/img/sprites/spritesmith/npcs/npc_ian.png and /dev/null differ
diff --git a/common/img/sprites/spritesmith/npcs/npc_justin.png b/common/img/sprites/spritesmith/npcs/npc_justin.png
index 28a58235d3..08cb56f206 100644
Binary files a/common/img/sprites/spritesmith/npcs/npc_justin.png and b/common/img/sprites/spritesmith/npcs/npc_justin.png differ
diff --git a/common/img/sprites/spritesmith/npcs/npc_matt.png b/common/img/sprites/spritesmith/npcs/npc_matt.png
index 5998391df7..b643153c46 100644
Binary files a/common/img/sprites/spritesmith/npcs/npc_matt.png and b/common/img/sprites/spritesmith/npcs/npc_matt.png differ
diff --git a/common/img/sprites/spritesmith/npcs/npc_timetravelers_active.png b/common/img/sprites/spritesmith/npcs/npc_timetravelers_active.png
index e14e0d32ba..f84a5ba2e0 100644
Binary files a/common/img/sprites/spritesmith/npcs/npc_timetravelers_active.png and b/common/img/sprites/spritesmith/npcs/npc_timetravelers_active.png differ
diff --git a/common/img/sprites/spritesmith/stable/pets/Pet-Gryphon-RoyalPurple.png b/common/img/sprites/spritesmith/stable/pets/Pet-Gryphon-RoyalPurple.png
new file mode 100644
index 0000000000..bd83845408
Binary files /dev/null and b/common/img/sprites/spritesmith/stable/pets/Pet-Gryphon-RoyalPurple.png differ
diff --git a/common/img/sprites/spritesmith_large/promo/promo_backgrounds_armoire_201608.png b/common/img/sprites/spritesmith_large/promo/promo_backgrounds_armoire_201608.png
new file mode 100644
index 0000000000..34755d8671
Binary files /dev/null and b/common/img/sprites/spritesmith_large/promo/promo_backgrounds_armoire_201608.png differ
diff --git a/common/img/sprites/spritesmith_large/promo/promo_mystery_201607.png b/common/img/sprites/spritesmith_large/promo/promo_mystery_201607.png
new file mode 100644
index 0000000000..52a7913e57
Binary files /dev/null and b/common/img/sprites/spritesmith_large/promo/promo_mystery_201607.png differ
diff --git a/common/img/sprites/spritesmith_large/promo/promo_unconventional_armor.png b/common/img/sprites/spritesmith_large/promo/promo_unconventional_armor.png
new file mode 100644
index 0000000000..23147048b1
Binary files /dev/null and b/common/img/sprites/spritesmith_large/promo/promo_unconventional_armor.png differ
diff --git a/common/locales/en/backgrounds.json b/common/locales/en/backgrounds.json
index b2981d3d04..956033fee0 100644
--- a/common/locales/en/backgrounds.json
+++ b/common/locales/en/backgrounds.json
@@ -207,5 +207,13 @@
"backgroundDeepSeaText": "Deep Sea",
"backgroundDeepSeaNotes": "Dive to the Deep Sea.",
"backgroundDilatoryCastleText": "Castle of Dilatory",
- "backgroundDilatoryCastleNotes": "Swim past the Castle of Dilatory."
+ "backgroundDilatoryCastleNotes": "Swim past the Castle of Dilatory.",
+
+ "backgrounds082016": "SET 27: Released August 2016",
+ "backgroundIdyllicCabinText": "Idyllic Cabin",
+ "backgroundIdyllicCabinNotes": "Retreat to an Idyllic Cabin.",
+ "backgroundMountainPyramidText": "Mountain Pyramid",
+ "backgroundMountainPyramidNotes": "Climb the many steps of a Mountain Pyramid.",
+ "backgroundStormyShipText": "Stormy Ship",
+ "backgroundStormyShipNotes": "Hold steady against wind and wave aboard a Stormy Ship."
}
diff --git a/common/locales/en/front.json b/common/locales/en/front.json
index 7c0621910b..6e4dfec28f 100644
--- a/common/locales/en/front.json
+++ b/common/locales/en/front.json
@@ -67,6 +67,7 @@
"goalSample4": "Japanese lesson on Duolingo",
"goalSample5": "Read an Informative Article",
"goals": "Goals",
+ "guidanceForBlacksmiths": "Guidance for Blacksmiths",
"health": "Health",
"healthSample1": "Drink Water/Soda",
"healthSample2": "Chew Gum/Smoke",
@@ -167,6 +168,7 @@
"teams": "Teams",
"terms": "Terms and Conditions",
"testimonialHeading": "What people say...",
+ "tumblr": "Tumblr",
"localStorageTryFirst": "If you are experiencing problems with Habitica, click the button below to clear local storage for this website (other websites will not be affected). You will need to log in again after doing this, so first be sure that you know your log-in details, which can be found at Settings -> <%= linkStart %>Site<%= linkEnd %>.",
"localStorageTryNext": "If the problem persists, please <%= linkStart %>Report a Bug<%= linkEnd %> if you haven't already.",
"localStorageClearing": "Clearing Local Storage",
diff --git a/common/locales/en/gear.json b/common/locales/en/gear.json
index 29132e21c4..0e1b411559 100644
--- a/common/locales/en/gear.json
+++ b/common/locales/en/gear.json
@@ -442,6 +442,8 @@
"armorMystery201605Notes": "Unlike the traditional bards who join adventuring parties, bards who join Habitican marching bands are known for grand parades, not dungeon raids. Confers no benefit. May 2016 Subscriber Item.",
"armorMystery201606Text": "Selkie Tail",
"armorMystery201606Notes": "This strong tail shimmers like sea foam crashing upon the shore. Confers no benefit. June 2016 Subscriber Item.",
+ "armorMystery201607Text": "Seafloor Rogue Armor",
+ "armorMystery201607Notes": "Blend into the sea floor with this stealthy aquatic armor. Confers no benefit. July 2016 Subscriber Item.",
"armorMystery301404Text": "Steampunk Suit",
"armorMystery301404Notes": "Dapper and dashing, wot! Confers no benefit. February 3015 Subscriber Item.",
@@ -479,6 +481,8 @@
"armorArmoireStripedSwimsuitNotes": "What could be more fun than battling sea monsters on the beach? Increases Constitution by <%= con %>. Enchanted Armoire: Seaside Set (Item 2 of 3).",
"armorArmoireCannoneerRagsText": "Cannoneer Rags",
"armorArmoireCannoneerRagsNotes": "These rags be tougher than they look. Increases Constitution by <%= con %>. Enchanted Armoire: Cannoneer Set (Item 2 of 3).",
+ "armorArmoireFalconerArmorText": "Falconer Armor",
+ "armorArmoireFalconerArmorNotes": "Keep away talon attacks with this sturdy armor! Increases Constitution by <%= con %>. Enchanted Armoire: Falconer Set (Item 1 of 3).",
"headgear": "headgear",
"headgearCapitalized": "Headgear",
@@ -687,6 +691,8 @@
"headMystery201605Notes": "Seventy-six dragons led the big parade, with a hundred and ten gryphons close at hand! Confers no benefit. May 2016 Subscriber Item.",
"headMystery201606Text": "Selkie Cap",
"headMystery201606Notes": "Hum the tune of the ocean as you blend in with the frolicking seals! Confers no benefit. June 2016 Subscriber Item.",
+ "headMystery201607Text": "Seafloor Rogue Helm",
+ "headMystery201607Notes": "The kelp growing from this helm helps camouflage you. Confers no benefit. July 2016 Subscriber Item.",
"headMystery301404Text": "Fancy Top Hat",
"headMystery301404Notes": "A fancy top hat for the finest of gentlefolk! January 3015 Subscriber Item. Confers no benefit.",
"headMystery301405Text": "Basic Top Hat",
@@ -742,6 +748,8 @@
"headArmoireGreenFloppyHatNotes": "Many spells have been sewn into this simple hat, giving it a gorgeous green color. Increases Constitution, Intelligence, and Perception by <%= attrs %> each. Enchanted Armoire: Independent Item.",
"headArmoireCannoneerBandannaText": "Cannoneer Bandanna",
"headArmoireCannoneerBandannaNotes": "'Tis a cannoneer's life for me! Increases Intelligence and Perception by <%= attrs %> each. Enchanted Armoire: Cannoneer Set (Item 3 of 3).",
+ "headArmoireFalconerCapText": "Falconer Cap",
+ "headArmoireFalconerCapNotes": "This jaunty cap helps you better understand birds of prey. Increases Intelligence by <%= int %>. Enchanted Armoire: Falconer Set (Item 2 of 3).",
"offhand": "shield-hand item",
"offhandCapitalized": "Shield-Hand Item",
@@ -877,6 +885,8 @@
"shieldArmoireFloralBouquetNotes": "Not much help in battle, but aren't they beautiful? Increases Constitution by <%= con %>. Enchanted Armoire: Independent Item.",
"shieldArmoireSandyBucketText": "Sandy Bucket",
"shieldArmoireSandyBucketNotes": "Good for storing all that Gold that you'll earn from completing tasks! Increases Perception by <%= per %>. Enchanted Armoire: Seaside Set (Item 3 of 3).",
+ "shieldArmoirePerchingFalconText": "Perching Falcon",
+ "shieldArmoirePerchingFalconNotes": "A falcon friend perches on your arm, prepared to swoop at your enemies. Increases Strength by <%= str %>. Enchanted Armoire: Falconer Set (Item 3 of 3).",
"back": "Back Accessory",
"backBase0Text": "No Back Accessory",
diff --git a/common/locales/en/generic.json b/common/locales/en/generic.json
index c374357dc8..52b9d72a41 100644
--- a/common/locales/en/generic.json
+++ b/common/locales/en/generic.json
@@ -117,6 +117,7 @@
"audioTheme_gokulTheme": "Gokul Theme",
"audioTheme_luneFoxTheme": "LuneFox's Theme",
"audioTheme_rosstavoTheme": "Rosstavo's Theme",
+ "audioTheme_dewinTheme": "Dewin's Theme",
"askQuestion": "Ask a Question",
"reportBug": "Report a Bug",
"HabiticaWiki": "The Habitica Wiki",
diff --git a/common/locales/en/npc.json b/common/locales/en/npc.json
index 55ad9377c4..fa93c62ec7 100644
--- a/common/locales/en/npc.json
+++ b/common/locales/en/npc.json
@@ -11,6 +11,7 @@
"danielText2Broken": "Oh... If you are participating in a boss quest, the boss will still damage you for your party mates' missed Dailies... Also, your own damage to the Boss (or items collected) will not be applied until you check out of the Inn...",
"alexander": "Alexander the Merchant",
"welcomeMarket": "Welcome to the Market! Buy hard-to-find eggs and potions! Sell your extras! Commission useful services! Come see what we have to offer.",
+ "welcomeMarketMobile": "Welcome to the Market! Buy hard-to-find eggs and potions! Come see what we have to offer.",
"displayItemForGold": "Do you want to sell a <%= itemType %> ?",
"displayEggForGold": "Do you want to sell a <%= itemType %> Egg ?",
"displayPotionForGold": "Do you want to sell a <%= itemType %> Potion ?",
@@ -20,6 +21,7 @@
"justin": "Justin",
"ian": "Ian",
"ianText": "Welcome to the Quest Shop! Here you can use Quest Scrolls to battle monsters with your friends. Be sure to check out our fine array of Quest Scrolls for purchase on the right!",
+ "ianTextMobile": "Welcome to the Quest Shop! Be sure to check out our fine array of Quest Scrolls for purchase!",
"ianBrokenText": "Welcome to the Quest Shop... Here you can use Quest Scrolls to battle monsters with your friends... Be sure to check out our fine array of Quest Scrolls for purchase on the right...",
"missingKeyParam": "\"req.params.key\" is required.",
diff --git a/common/locales/en/settings.json b/common/locales/en/settings.json
index e854bebd05..0fdfe59c7d 100644
--- a/common/locales/en/settings.json
+++ b/common/locales/en/settings.json
@@ -66,7 +66,6 @@
"deleteLocalAccountText": "Are you sure? This will delete your account forever, and it can never be restored! You will need to register a new account to use Habitica again. Banked or spent Gems will not be refunded. If you're absolutely certain, type your password into the text box below.",
"API": "API",
"APIv3": "API v3",
- "APIv2": "API v2 - Deprecated",
"APIText": "Copy these for use in third party applications. However, think of your API Token like a password, and do not share it publicly. You may occasionally be asked for your User ID, but never post your API Token where others can see it, including on Github.",
"APIToken": "API Token (this is a password - see warning above!)",
"thirdPartyApps": "Third Party Apps",
diff --git a/common/locales/en/subscriber.json b/common/locales/en/subscriber.json
index ec35adbc90..264b6e107c 100644
--- a/common/locales/en/subscriber.json
+++ b/common/locales/en/subscriber.json
@@ -73,6 +73,7 @@
"timeTravelersTitleNoSub": "<%= linkStartTyler %>Tyler<%= linkEnd %> and <%= linkStartVicky %>Vicky<%= linkEnd %>",
"timeTravelersTitle": "Mysterious Time Travelers",
"timeTravelersPopoverNoSub": "You'll need a Mystic Hourglass to summon the mysterious Time Travelers! <%= linkStart %>Subscribers<%= linkEnd %> earn one Mystic Hourglass for every three months of consecutive subscribing. Come back when you have a Mystic Hourglass, and the Time Travelers will fetch you a rare pet, mount, or Subscriber Item Set from the past... or maybe even the future.",
+ "timeTravelersPopoverNoSubMobile": "You'll need a Mystic Hourglass to summon the mysterious Time Travelers! Subscribers earn one Mystic Hourglass for every three months of consecutive subscribing. Come back when you have a Mystic Hourglass, and the Time Travelers will fetch you a rare pet, mount, or Subscriber Item Set from the past... or maybe even the future.",
"timeTravelersPopover": "We see you have a Mystic Hourglass, so we will happily travel back in time for you! Please choose the pet, mount, or Mystery Item Set you would like. You can see a list of the past item sets here ! If those don't satisfy you, perhaps you'd be interested in one of our fashionably futuristic Steampunk Item Sets?",
"timeTravelersAlreadyOwned": "Congratulations! You already own everything the Time Travelers currently offer. Thanks for supporting the site!",
"mysticHourglassPopover": "A Mystic Hourglass allows you to purchase certain limited-time items, such as monthly Mystery Item Sets and awards from world bosses, from the past!",
@@ -109,6 +110,7 @@
"mysterySet201604": "Leaf Warrior Set",
"mysterySet201605": "Marching Bard Set",
"mysterySet201606": "Selkie Robes Set",
+ "mysterySet201607": "Seafloor Rogue Set",
"mysterySet301404": "Steampunk Standard Set",
"mysterySet301405": "Steampunk Accessories Set",
diff --git a/common/script/content/appearance/backgrounds.js b/common/script/content/appearance/backgrounds.js
index d6881f1458..df9e64c321 100644
--- a/common/script/content/appearance/backgrounds.js
+++ b/common/script/content/appearance/backgrounds.js
@@ -367,6 +367,20 @@ let backgrounds = {
notes: t('backgroundDeepSeaNotes'),
},
},
+ backgrounds082016: {
+ idyllic_cabin: {
+ text: t('backgroundIdyllicCabinText'),
+ notes: t('backgroundIdyllicCabinNotes'),
+ },
+ mountain_pyramid: {
+ text: t('backgroundMountainPyramidText'),
+ notes: t('backgroundMountainPyramidNotes'),
+ },
+ stormy_ship: {
+ text: t('backgroundStormyShipText'),
+ notes: t('backgroundStormyShipNotes'),
+ },
+ },
};
/* eslint-enable quote-props */
diff --git a/common/script/content/gear/index.js b/common/script/content/gear/index.js
index d7013e9986..5137539c40 100644
--- a/common/script/content/gear/index.js
+++ b/common/script/content/gear/index.js
@@ -71,7 +71,7 @@ each(GEAR_TYPES, (type) => {
};
}
- if (item.mystery) {
+ if (item.mystery || key.indexOf('takeThis') !== -1) {
item.canOwn = ownsItem(key);
}
diff --git a/common/script/content/gear/sets/armoire.js b/common/script/content/gear/sets/armoire.js
index 03a1a45e2d..6c69c5dc89 100644
--- a/common/script/content/gear/sets/armoire.js
+++ b/common/script/content/gear/sets/armoire.js
@@ -150,6 +150,14 @@ let armor = {
set: 'cannoneer',
canOwn: ownsItem('armor_armoire_cannoneerRags'),
},
+ falconerArmor: {
+ text: t('armorArmoireFalconerArmorText'),
+ notes: t('armorArmoireFalconerArmorNotes', { con: 10 }),
+ value: 100,
+ con: 10,
+ set: 'falconer',
+ canOwn: ownsItem('armor_armoire_falconerArmor'),
+ },
};
let eyewear = {
@@ -380,6 +388,14 @@ let head = {
set: 'cannoneer',
canOwn: ownsItem('head_armoire_cannoneerBandanna'),
},
+ falconerCap: {
+ text: t('headArmoireFalconerCapText'),
+ notes: t('headArmoireFalconerCapNotes', { int: 10 }),
+ value: 100,
+ int: 10,
+ set: 'falconer',
+ canOwn: ownsItem('head_armoire_falconerCap'),
+ },
};
let shield = {
@@ -440,6 +456,14 @@ let shield = {
set: 'seaside',
canOwn: ownsItem('shield_armoire_sandyBucket'),
},
+ perchingFalcon: {
+ text: t('shieldArmoirePerchingFalconText'),
+ notes: t('shieldArmoirePerchingFalconNotes', { str: 16 }),
+ value: 100,
+ str: 16,
+ set: 'falconer',
+ canOwn: ownsItem('shield_armoire_perchingFalcon'),
+ },
};
let headAccessory = {
diff --git a/common/script/content/gear/sets/mystery.js b/common/script/content/gear/sets/mystery.js
index ff554f1261..c9b2efb1e7 100644
--- a/common/script/content/gear/sets/mystery.js
+++ b/common/script/content/gear/sets/mystery.js
@@ -127,6 +127,12 @@ let armor = {
mystery: '201606',
value: 0,
},
+ 201607: {
+ text: t('armorMystery201607Text'),
+ notes: t('armorMystery201607Notes'),
+ mystery: '201607',
+ value: 0,
+ },
301404: {
text: t('armorMystery301404Text'),
notes: t('armorMystery301404Notes'),
@@ -328,6 +334,12 @@ let head = {
mystery: '201606',
value: 0,
},
+ 201607: {
+ text: t('headMystery201607Text'),
+ notes: t('headMystery201607Notes'),
+ mystery: '201607',
+ value: 0,
+ },
301404: {
text: t('headMystery301404Text'),
notes: t('headMystery301404Notes'),
diff --git a/common/script/content/gear/sets/special/index.js b/common/script/content/gear/sets/special/index.js
index caf610880b..69711f9a79 100644
--- a/common/script/content/gear/sets/special/index.js
+++ b/common/script/content/gear/sets/special/index.js
@@ -96,9 +96,6 @@ let armor = {
notes: t('armorSpecialSummerRogueNotes', { per: 15 }),
value: 90,
per: 15,
- canBuy: () => {
- return true;
- },
},
summerWarrior: {
event: EVENTS.summer,
@@ -107,9 +104,6 @@ let armor = {
notes: t('armorSpecialSummerWarriorNotes', { con: 9 }),
value: 90,
con: 9,
- canBuy: () => {
- return true;
- },
},
summerMage: {
event: EVENTS.summer,
@@ -118,9 +112,6 @@ let armor = {
notes: t('armorSpecialSummerMageNotes', { int: 9 }),
value: 90,
int: 9,
- canBuy: () => {
- return true;
- },
},
summerHealer: {
event: EVENTS.summer,
@@ -129,9 +120,6 @@ let armor = {
notes: t('armorSpecialSummerHealerNotes', { con: 15 }),
value: 90,
con: 15,
- canBuy: () => {
- return true;
- },
},
fallRogue: {
event: EVENTS.fall,
@@ -242,9 +230,6 @@ let armor = {
notes: t('armorSpecialSummer2015RogueNotes', { per: 15 }),
value: 90,
per: 15,
- canBuy: () => {
- return true;
- },
},
summer2015Warrior: {
event: EVENTS.summer2015,
@@ -253,9 +238,6 @@ let armor = {
notes: t('armorSpecialSummer2015WarriorNotes', { con: 9 }),
value: 90,
con: 9,
- canBuy: () => {
- return true;
- },
},
summer2015Mage: {
event: EVENTS.summer2015,
@@ -264,9 +246,6 @@ let armor = {
notes: t('armorSpecialSummer2015MageNotes', { int: 9 }),
value: 90,
int: 9,
- canBuy: () => {
- return true;
- },
},
summer2015Healer: {
event: EVENTS.summer2015,
@@ -275,9 +254,6 @@ let armor = {
notes: t('armorSpecialSummer2015HealerNotes', { con: 15 }),
value: 90,
con: 15,
- canBuy: () => {
- return true;
- },
},
fall2015Rogue: {
event: EVENTS.fall2015,
@@ -438,9 +414,6 @@ let body = {
text: t('bodySpecialSummerHealerText'),
notes: t('bodySpecialSummerHealerNotes'),
value: 20,
- canBuy: () => {
- return true;
- },
},
summerMage: {
event: EVENTS.summer,
@@ -448,9 +421,6 @@ let body = {
text: t('bodySpecialSummerMageText'),
notes: t('bodySpecialSummerMageNotes'),
value: 20,
- canBuy: () => {
- return true;
- },
},
summer2015Healer: {
event: EVENTS.summer2015,
@@ -458,9 +428,6 @@ let body = {
text: t('bodySpecialSummer2015HealerText'),
notes: t('bodySpecialSummer2015HealerNotes'),
value: 20,
- canBuy: () => {
- return true;
- },
},
summer2015Mage: {
event: EVENTS.summer2015,
@@ -468,9 +435,6 @@ let body = {
text: t('bodySpecialSummer2015MageText'),
notes: t('bodySpecialSummer2015MageNotes'),
value: 20,
- canBuy: () => {
- return true;
- },
},
summer2015Rogue: {
event: EVENTS.summer2015,
@@ -478,9 +442,6 @@ let body = {
text: t('bodySpecialSummer2015RogueText'),
notes: t('bodySpecialSummer2015RogueNotes'),
value: 20,
- canBuy: () => {
- return true;
- },
},
summer2015Warrior: {
event: EVENTS.summer2015,
@@ -488,9 +449,6 @@ let body = {
text: t('bodySpecialSummer2015WarriorText'),
notes: t('bodySpecialSummer2015WarriorNotes'),
value: 20,
- canBuy: () => {
- return true;
- },
},
};
@@ -503,9 +461,6 @@ let eyewear = {
text: t('eyewearSpecialSummerRogueText'),
notes: t('eyewearSpecialSummerRogueNotes'),
value: 20,
- canBuy: () => {
- return true;
- },
},
summerWarrior: {
event: EVENTS.summer,
@@ -513,9 +468,6 @@ let eyewear = {
text: t('eyewearSpecialSummerWarriorText'),
notes: t('eyewearSpecialSummerWarriorNotes'),
value: 20,
- canBuy: () => {
- return true;
- },
},
blackTopFrame: {
gearSet: 'glasses',
@@ -650,9 +602,6 @@ let head = {
notes: t('headSpecialSummerRogueNotes', { per: 9 }),
value: 60,
per: 9,
- canBuy: () => {
- return true;
- },
},
summerWarrior: {
event: EVENTS.summer,
@@ -661,9 +610,6 @@ let head = {
notes: t('headSpecialSummerWarriorNotes', { str: 9 }),
value: 60,
str: 9,
- canBuy: () => {
- return true;
- },
},
summerMage: {
event: EVENTS.summer,
@@ -672,9 +618,6 @@ let head = {
notes: t('headSpecialSummerMageNotes', { per: 7 }),
value: 60,
per: 7,
- canBuy: () => {
- return true;
- },
},
summerHealer: {
event: EVENTS.summer,
@@ -683,9 +626,6 @@ let head = {
notes: t('headSpecialSummerHealerNotes', { int: 7 }),
value: 60,
int: 7,
- canBuy: () => {
- return true;
- },
},
fallRogue: {
event: EVENTS.fall,
@@ -796,9 +736,6 @@ let head = {
notes: t('headSpecialSummer2015RogueNotes', { per: 9 }),
value: 60,
per: 9,
- canBuy: () => {
- return true;
- },
},
summer2015Warrior: {
event: EVENTS.summer2015,
@@ -807,9 +744,6 @@ let head = {
notes: t('headSpecialSummer2015WarriorNotes', { str: 9 }),
value: 60,
str: 9,
- canBuy: () => {
- return true;
- },
},
summer2015Mage: {
event: EVENTS.summer2015,
@@ -818,9 +752,6 @@ let head = {
notes: t('headSpecialSummer2015MageNotes', { per: 7 }),
value: 60,
per: 7,
- canBuy: () => {
- return true;
- },
},
summer2015Healer: {
event: EVENTS.summer2015,
@@ -829,9 +760,6 @@ let head = {
notes: t('headSpecialSummer2015HealerNotes', { int: 7 }),
value: 60,
int: 7,
- canBuy: () => {
- return true;
- },
},
fall2015Rogue: {
event: EVENTS.fall2015,
@@ -1216,9 +1144,6 @@ let shield = {
notes: t('shieldSpecialSummerRogueNotes', { str: 8 }),
value: 80,
str: 8,
- canBuy: () => {
- return true;
- },
},
summerWarrior: {
event: EVENTS.summer,
@@ -1227,9 +1152,6 @@ let shield = {
notes: t('shieldSpecialSummerWarriorNotes', { con: 7 }),
value: 70,
con: 7,
- canBuy: () => {
- return true;
- },
},
summerHealer: {
event: EVENTS.summer,
@@ -1238,9 +1160,6 @@ let shield = {
notes: t('shieldSpecialSummerHealerNotes', { con: 9 }),
value: 70,
con: 9,
- canBuy: () => {
- return true;
- },
},
fallRogue: {
event: EVENTS.fall,
@@ -1321,9 +1240,6 @@ let shield = {
notes: t('shieldSpecialSummer2015RogueNotes', { str: 8 }),
value: 80,
str: 8,
- canBuy: () => {
- return true;
- },
},
summer2015Warrior: {
event: EVENTS.summer2015,
@@ -1332,9 +1248,6 @@ let shield = {
notes: t('shieldSpecialSummer2015WarriorNotes', { con: 7 }),
value: 70,
con: 7,
- canBuy: () => {
- return true;
- },
},
summer2015Healer: {
event: EVENTS.summer2015,
@@ -1343,9 +1256,6 @@ let shield = {
notes: t('shieldSpecialSummer2015HealerNotes', { con: 9 }),
value: 70,
con: 9,
- canBuy: () => {
- return true;
- },
},
fall2015Rogue: {
event: EVENTS.fall2015,
@@ -1534,9 +1444,6 @@ let weapon = {
notes: t('weaponSpecialSummerRogueNotes', { str: 8 }),
value: 80,
str: 8,
- canBuy: () => {
- return true;
- },
},
summerWarrior: {
event: EVENTS.summer,
@@ -1545,9 +1452,6 @@ let weapon = {
notes: t('weaponSpecialSummerWarriorNotes', { str: 15 }),
value: 90,
str: 15,
- canBuy: () => {
- return true;
- },
},
summerMage: {
event: EVENTS.summer,
@@ -1558,9 +1462,6 @@ let weapon = {
value: 160,
int: 15,
per: 7,
- canBuy: () => {
- return true;
- },
},
summerHealer: {
event: EVENTS.summer,
@@ -1569,9 +1470,6 @@ let weapon = {
notes: t('weaponSpecialSummerHealerNotes', { int: 9 }),
value: 90,
int: 9,
- canBuy: () => {
- return true;
- },
},
fallRogue: {
event: EVENTS.fall,
@@ -1682,9 +1580,6 @@ let weapon = {
notes: t('weaponSpecialSummer2015RogueNotes', { str: 8 }),
value: 80,
str: 8,
- canBuy: () => {
- return true;
- },
},
summer2015Warrior: {
event: EVENTS.summer2015,
@@ -1693,9 +1588,6 @@ let weapon = {
notes: t('weaponSpecialSummer2015WarriorNotes', { str: 15 }),
value: 90,
str: 15,
- canBuy: () => {
- return true;
- },
},
summer2015Mage: {
event: EVENTS.summer2015,
@@ -1706,9 +1598,6 @@ let weapon = {
value: 160,
int: 15,
per: 7,
- canBuy: () => {
- return true;
- },
},
summer2015Healer: {
event: EVENTS.summer2015,
@@ -1717,9 +1606,6 @@ let weapon = {
notes: t('weaponSpecialSummer2015HealerNotes', { int: 9 }),
value: 90,
int: 9,
- canBuy: () => {
- return true;
- },
},
fall2015Rogue: {
event: EVENTS.fall2015,
diff --git a/common/script/content/index.js b/common/script/content/index.js
index c9c9c321e7..de6ec06375 100644
--- a/common/script/content/index.js
+++ b/common/script/content/index.js
@@ -441,6 +441,7 @@ api.specialPets = {
'Turkey-Gilded': 'gildedTurkey',
'MagicalBee-Base': 'magicalBee',
'Lion-Veteran': 'veteranLion',
+ 'Gryphon-RoyalPurple': 'royalPurpleGryphon',
};
api.specialMounts = {
diff --git a/common/script/content/mystery-sets.js b/common/script/content/mystery-sets.js
index ea1423e464..254179da63 100644
--- a/common/script/content/mystery-sets.js
+++ b/common/script/content/mystery-sets.js
@@ -118,6 +118,10 @@ let mysterySets = {
start: '2016-06-23',
end: '2016-07-02',
},
+ 201607: {
+ start: '2016-07-26',
+ end: '2016-08-02',
+ },
301404: {
start: '3014-03-24',
end: '3014-04-02',
diff --git a/common/script/index.js b/common/script/index.js
index 112c06a597..8f32dcb456 100644
--- a/common/script/index.js
+++ b/common/script/index.js
@@ -94,6 +94,9 @@ api.count = count;
import statsComputed from './libs/statsComputed';
api.statsComputed = statsComputed;
+import shops from './libs/shops';
+api.shops = shops;
+
import autoAllocate from './fns/autoAllocate';
import crit from './fns/crit';
import handleTwoHanded from './fns/handleTwoHanded';
diff --git a/common/script/libs/shops.js b/common/script/libs/shops.js
new file mode 100644
index 0000000000..7a5f2b8e36
--- /dev/null
+++ b/common/script/libs/shops.js
@@ -0,0 +1,235 @@
+import _ from 'lodash';
+import content from '../content/index';
+import i18n from '../i18n';
+
+let shops = {};
+
+function lockQuest (quest, user) {
+ if (quest.lvl && user.stats.lvl < quest.lvl) return true;
+ if (user.achievements.quests) return quest.previous && !user.achievements.quests[quest.previous];
+ return quest.previous;
+}
+
+shops.getMarketCategories = function getMarket (user, language) {
+ let categories = [];
+ let eggsCategory = {
+ identifier: 'eggs',
+ text: i18n.t('eggs', language),
+ notes: i18n.t('dropsExplanation', language),
+ };
+
+ eggsCategory.items = _(content.questEggs)
+ .values()
+ .filter(egg => egg.canBuy(user))
+ .concat(_.values(content.dropEggs))
+ .map(egg => {
+ return {
+ key: egg.key,
+ text: i18n.t('egg', {eggType: egg.text()}, language),
+ notes: egg.notes(language),
+ value: egg.value,
+ class: `Pet_Egg_${egg.key}`,
+ locked: false,
+ currency: 'gems',
+ purchaseType: 'eggs',
+ };
+ }).sortBy('key').value();
+ categories.push(eggsCategory);
+
+ let hatchingPotionsCategory = {
+ identifier: 'hatchingPotions',
+ text: i18n.t('hatchingPotions', language),
+ notes: i18n.t('dropsExplanation', language),
+ };
+ hatchingPotionsCategory.items = _(content.hatchingPotions)
+ .values()
+ .filter(hp => !hp.limited)
+ .map(hatchingPotion => {
+ return {
+ key: hatchingPotion.key,
+ text: hatchingPotion.text(language),
+ notes: hatchingPotion.notes(language),
+ class: `Pet_HatchingPotion_${hatchingPotion.key}`,
+ value: hatchingPotion.value,
+ locked: false,
+ currency: 'gems',
+ purchaseType: 'hatchingPotions',
+ };
+ }).sortBy('key').value();
+ categories.push(hatchingPotionsCategory);
+
+ let foodCategory = {
+ identifier: 'food',
+ text: i18n.t('food', language),
+ notes: i18n.t('dropsExplanation', language),
+ };
+ foodCategory.items = _(content.food)
+ .values()
+ .filter(food => food.canDrop || food.key === 'Saddle')
+ .map(foodItem => {
+ return {
+ key: foodItem.key,
+ text: foodItem.text(language),
+ notes: foodItem.notes(language),
+ class: `Pet_Food_${foodItem.key}`,
+ value: foodItem.value,
+ locked: false,
+ currency: 'gems',
+ purchaseType: 'food',
+ };
+ }).sortBy('key').value();
+ categories.push(foodCategory);
+
+ return categories;
+};
+
+shops.getQuestShopCategories = function getQuestShopCategories (user, language) {
+ let categories = [];
+
+ _.each(content.userCanOwnQuestCategories, type => {
+ let category = {
+ identifier: type,
+ text: i18n.t(`${type}Quests`, language),
+ };
+
+ category.items = _(content.questsByLevel)
+ .filter(quest => quest.canBuy(user) && quest.category === type)
+ .map(quest => {
+ let locked = lockQuest(quest, user);
+ return {
+ key: quest.key,
+ text: quest.text(language),
+ notes: quest.notes(language),
+ value: quest.goldValue ? quest.goldValue : quest.value,
+ currency: quest.goldValue ? 'gold' : 'gems',
+ locked,
+ unlockCondition: quest.unlockCondition,
+ drop: quest.drop,
+ boss: quest.boss,
+ collect: quest.collect,
+ lvl: quest.lvl,
+ class: locked ? `inventory_quest_scroll_${quest.key}_locked` : `inventory_quest_scroll_${quest.key}`,
+ purchaseType: 'quests',
+ };
+ }).value();
+
+ categories.push(category);
+ });
+
+ return categories;
+};
+
+shops.getTimeTravelersCategories = function getTimeTravelersCategories (user, language) {
+ let categories = [];
+ let stable = {pets: 'Pet-', mounts: 'Mount_Head_'};
+ for (let type in stable) {
+ if (stable.hasOwnProperty(type)) {
+ let category = {
+ identifier: type,
+ text: i18n.t(type, language),
+ items: [],
+ };
+
+ for (let key in content.timeTravelStable[type]) {
+ if (content.timeTravelStable[type].hasOwnProperty(key)) {
+ if (!user.items[type][key]) {
+ let item = {
+ key,
+ text: content.timeTravelStable[type][key](language),
+ class: stable[type] + key,
+ type,
+ purchaseType: type,
+ value: 1,
+ notes: '',
+ locked: false,
+ currency: 'hourglasses',
+ };
+ category.items.push(item);
+ }
+ }
+ }
+ if (category.items.length > 0) {
+ categories.push(category);
+ }
+ }
+ }
+
+ let sets = content.timeTravelerStore(user.items.gear.owned);
+ for (let setKey in sets) {
+ if (sets.hasOwnProperty(setKey)) {
+ let set = sets[setKey];
+ let category = {
+ identifier: set.key,
+ text: set.text(language),
+ purchaseAll: true,
+ };
+
+ category.items = _.map(set.items, item => {
+ return {
+ key: item.key,
+ text: item.text(language),
+ notes: item.notes(language),
+ type: item.type,
+ purchaseType: 'gear',
+ value: 1,
+ locked: false,
+ currency: 'hourglasses',
+ class: `shop_${item.key}`,
+ };
+ });
+ if (category.items.length > 0) {
+ categories.push(category);
+ }
+ }
+ }
+
+ return categories;
+};
+
+// To switch seasons/available inventory, edit the availableSets object to whatever should be sold.
+// let availableSets = {
+// setKey: i18n.t('setTranslationString', language),
+// };
+shops.getSeasonalShopCategories = function getSeasonalShopCategories (user, language) {
+ let availableSets = {
+ };
+
+ let categories = [];
+
+ let flatGearArray = _.toArray(content.gear.flat);
+
+ for (let key in availableSets) {
+ if (availableSets.hasOwnProperty(key)) {
+ let category = {
+ identifier: key,
+ text: availableSets[key],
+ };
+
+ category.items = _(flatGearArray).filter((gear) => {
+ if (gear.index !== key) {
+ return false;
+ }
+ return user.items.gear.owned[gear.key] !== true;
+ }).where({index: key}).map(gear => {
+ return {
+ key: gear.key,
+ text: gear.text(language),
+ notes: gear.notes(language),
+ value: 1,
+ type: gear.type,
+ specialClass: gear.specialClass,
+ locked: false,
+ currency: 'gems',
+ purchaseType: 'gear',
+ };
+ }).value();
+ if (category.items.length > 0) {
+ categories.push(category);
+ }
+ }
+ }
+
+ return categories;
+};
+
+module.exports = shops;
diff --git a/config.json.example b/config.json.example
index a6b4fd0cf1..025f46f482 100644
--- a/config.json.example
+++ b/config.json.example
@@ -65,7 +65,8 @@
"LOGGLY_ACCOUNT": "account",
"PUSH_CONFIGS": {
"GCM_SERVER_API_KEY": "",
- "APN_ENABLED": "true"
+ "APN_ENABLED": "true",
+ "FCM_SERVER_API_KEY": ""
},
"PUSHER": {
"ENABLED": "false",
diff --git a/migrations/20160731_naming_day.js b/migrations/20160731_naming_day.js
new file mode 100644
index 0000000000..601798d14c
--- /dev/null
+++ b/migrations/20160731_naming_day.js
@@ -0,0 +1,82 @@
+var migrationName = '20160731_naming_day.js';
+var authorName = 'Sabe'; // in case script author needs to know when their ...
+var authorUuid = '7f14ed62-5408-4e1b-be83-ada62d504931'; //... own data is done
+
+/*
+ * Award Royal Purple Gryphon pet to Royal Purple Gryphon mount owners, mount to everyone else
+ */
+
+var mongo = require('mongoskin');
+
+var connectionString = 'mongodb://localhost:27017/habitrpg?auto_reconnect=true'; // FOR TEST DATABASE
+
+var dbUsers = mongo.db(connectionString).collection('users');
+
+// specify a query to limit the affected users (empty for all users):
+var query = {
+ 'migration':{$ne:migrationName},
+ 'auth.timestamps.loggedin':{$gt:new Date('2016-07-30')} // Extend timeframe each run of migration
+};
+
+// specify fields we are interested in to limit retrieved data (empty if we're not reading data):
+var fields = {
+ 'items.mounts': 1
+};
+
+console.warn('Updating users...');
+var progressCount = 1000;
+var count = 0;
+dbUsers.findEach(query, fields, {batchSize:250}, function(err, user) {
+ if (err) { return exiting(1, 'ERROR! ' + err); }
+ if (!user) {
+ console.warn('All appropriate users found and modified.');
+ setTimeout(displayData, 300000);
+ return;
+ }
+ count++;
+
+ // specify user data to change:
+ var set = {};
+ var inc = {};
+ inc = {
+ 'achievements.habiticaDays': 1,
+ 'items.food.Cake_Skeleton': 1,
+ 'items.food.Cake_Base': 1,
+ 'items.food.Cake_CottonCandyBlue': 1,
+ 'items.food.Cake_CottonCandyPink': 1,
+ 'items.food.Cake_Shade': 1,
+ 'items.food.Cake_White': 1,
+ 'items.food.Cake_Golden': 1,
+ 'items.food.Cake_Zombie': 1,
+ 'items.food.Cake_Desert': 1,
+ 'items.food.Cake_Red': 1
+ };
+ if (user.items.mounts['Gryphon-RoyalPurple']) {
+ set = {'migration':migrationName, 'items.pets.Gryphon-RoyalPurple':5};
+ } else {
+ set = {'migration':migrationName, 'items.mounts.Gryphon-RoyalPurple':true};
+ }
+
+ dbUsers.update({_id:user._id}, {$set:set, $inc:inc});
+
+ if (count%progressCount == 0) console.warn(count + ' ' + user._id);
+ if (user._id == authorUuid) console.warn(authorName + ' processed');
+});
+
+
+function displayData() {
+ console.warn('\n' + count + ' users processed\n');
+ return exiting(0);
+}
+
+
+function exiting(code, msg) {
+ code = code || 0; // 0 = success
+ if (code && !msg) { msg = 'ERROR!'; }
+ if (msg) {
+ if (code) { console.error(msg); }
+ else { console.log( msg); }
+ }
+ process.exit(code);
+}
+
diff --git a/migrations/20160731_takeThis.js b/migrations/20160731_takeThis.js
new file mode 100644
index 0000000000..b08700a4bd
--- /dev/null
+++ b/migrations/20160731_takeThis.js
@@ -0,0 +1,71 @@
+var migrationName = '20160731_takeThis.js';
+var authorName = 'Sabe'; // in case script author needs to know when their ...
+var authorUuid = '7f14ed62-5408-4e1b-be83-ada62d504931'; //... own data is done
+
+/*
+ * Award Take This Sword to Take This challenge participants who already own the Shield
+ * and Take This Shield to the rest of the list
+ */
+
+var mongo = require('mongoskin');
+
+var connectionString = 'mongodb://localhost:27017/habitrpg?auto_reconnect=true'; // FOR TEST DATABASE
+
+var dbUsers = mongo.db(connectionString).collection('users');
+
+// specify a query to limit the affected users (empty for all users):
+var query = {
+ 'migration':{$ne:migrationName},
+ 'auth.timestamps.loggedin':{$gt:new Date('2016-07-30')}, // Extend timeframe each run of migration
+ 'challenges':{$in:['da8859b2-5c6e-4aa5-b8b2-8db93d5de9fc']}
+};
+
+// specify fields we are interested in to limit retrieved data (empty if we're not reading data):
+var fields = {
+ 'items.gear.owned': 1
+};
+
+console.warn('Updating users...');
+var progressCount = 1000;
+var count = 0;
+dbUsers.findEach(query, fields, {batchSize:250}, function(err, user) {
+ if (err) { return exiting(1, 'ERROR! ' + err); }
+ if (!user) {
+ console.warn('All appropriate users found and modified.');
+ setTimeout(displayData, 300000);
+ return;
+ }
+ count++;
+
+ // specify user data to change:
+ var set = {};
+
+ if (typeof user.items.gear.owned.shield_special_takeThis !== 'undefined') {
+ set = {'migration':migrationName, 'items.gear.owned.weapon_special_takeThis':false};
+ } else {
+ set = {'migration':migrationName, 'items.gear.owned.shield_special_takeThis':false};
+ }
+
+ dbUsers.update({_id:user._id}, {$set:set});
+
+ if (count%progressCount == 0) console.warn(count + ' ' + user._id);
+ if (user._id == authorUuid) console.warn(authorName + ' processed');
+});
+
+
+function displayData() {
+ console.warn('\n' + count + ' users processed\n');
+ return exiting(0);
+}
+
+
+function exiting(code, msg) {
+ code = code || 0; // 0 = success
+ if (code && !msg) { msg = 'ERROR!'; }
+ if (msg) {
+ if (code) { console.error(msg); }
+ else { console.log( msg); }
+ }
+ process.exit(code);
+}
+
diff --git a/migrations/mystery_items.js b/migrations/mystery_items.js
index 3e6a04a37f..e0e9ad22d9 100644
--- a/migrations/mystery_items.js
+++ b/migrations/mystery_items.js
@@ -2,7 +2,7 @@ var _id = '';
var update = {
$addToSet: {
'purchased.plan.mysteryItems':{
- $each:['head_mystery_201606','armor_mystery_201606']
+ $each:['head_mystery_201607','armor_mystery_201607']
}
}
};
diff --git a/migrations/new_stuff.js b/migrations/new_stuff.js
index 9d8b796c69..518df71056 100644
--- a/migrations/new_stuff.js
+++ b/migrations/new_stuff.js
@@ -6,23 +6,19 @@ var authorUuid = '7f14ed62-5408-4e1b-be83-ada62d504931'; //... own data is done
* set the newStuff flag in all user accounts so they see a Bailey message
*/
-var dbserver = 'localhost:27017'; // FOR TEST DATABASE
-// var dbserver = 'username:password@ds031379-a0.mongolab.com:31379'; // FOR PRODUCTION DATABASE
-var dbname = 'habitrpg';
-
var mongo = require('mongoskin');
-var _ = require('lodash');
-var dbUsers = mongo.db(dbserver + '/' + dbname + '?auto_reconnect').collection('users');
+var connectionString = 'mongodb://localhost:27017/habitrpg?auto_reconnect=true'; // FOR TEST DATABASE
+
+var dbUsers = mongo.db(connectionString).collection('users');
// specify a query to limit the affected users (empty for all users):
var query = {
- 'flags.newStuff':false
+ 'flags.newStuff':{$ne:true}
};
// specify fields we are interested in to limit retrieved data (empty if we're not reading data):
var fields = {
- 'flags.newStuff':1
};
console.warn('Updating users...');
@@ -32,12 +28,13 @@ dbUsers.findEach(query, fields, {batchSize:250}, function(err, user) {
if (err) { return exiting(1, 'ERROR! ' + err); }
if (!user) {
console.warn('All appropriate users found and modified.');
- return displayData();
+ setTimeout(displayData, 300000);
+ return;
}
count++;
// specify user data to change:
- var set = {'migration':migrationName, 'flags.newStuff':true};
+ var set = {'flags.newStuff':true};
dbUsers.update({_id:user._id}, {$set:set});
diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json
index f17fe0a116..b83662ba63 100644
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -1,6 +1,6 @@
{
"name": "habitica",
- "version": "3.23.1",
+ "version": "3.28.0",
"dependencies": {
"abbrev": {
"version": "1.0.9",
@@ -5949,11 +5949,6 @@
}
}
},
- "kerberos": {
- "version": "0.0.3",
- "from": "kerberos@0.0.3",
- "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-0.0.3.tgz"
- },
"kew": {
"version": "0.7.0",
"from": "kew@>=0.7.0 <0.8.0",
diff --git a/package.json b/package.json
index 8e20fc7606..17a8ed389e 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
- "version": "3.23.1",
+ "version": "3.28.0",
"main": "./website/server/index.js",
"dependencies": {
"accepts": "^1.3.2",
@@ -68,6 +68,7 @@
"nconf": "~0.8.2",
"newrelic": "^1.27.2",
"nib": "^1.1.0",
+ "node-gcm": "^0.14.4",
"nodemailer": "^2.3.2",
"object-path": "^0.9.2",
"pageres": "^4.1.1",
@@ -102,13 +103,11 @@
"scripts": {
"lint": "eslint .",
"test": "npm run lint && gulp test",
- "test:api-v2:unit": "mocha test/server_side",
- "test:api-v2:integration": "mocha test/api/v2 --recursive",
"test:api-v3": "gulp test:api-v3",
"test:api-v3:unit": "gulp test:api-v3:unit",
"test:api-v3:integration": "gulp test:api-v3:integration",
- "test:api-v3:integration:separate-server": "gulp test:api-v3:integration:separate-server",
- "test:api-legacy": "istanbul cover -i \"website/server/**\" --dir coverage/api ./node_modules/mocha/bin/_mocha test/api-legacy",
+ "test:api-v3:integration:separate-server": "NODE_ENV=test gulp test:api-v3:integration:separate-server",
+ "test:sanity": "mocha test/sanity --recursive",
"test:common": "mocha test/common --recursive",
"test:content": "mocha test/content --recursive",
"test:karma": "karma start --single-run",
@@ -147,7 +146,7 @@
"lcov-result-merger": "^1.0.2",
"mocha": "^2.3.3",
"mongodb": "^2.0.46",
- "mongoskin": "~0.6.1",
+ "mongoskin": "~2.1.0",
"nock": "^2.17.0",
"phantomjs": "^1.9",
"protractor": "^3.1.1",
diff --git a/tasks/gulp-console.js b/tasks/gulp-console.js
index 026d646cee..43c42abc8e 100644
--- a/tasks/gulp-console.js
+++ b/tasks/gulp-console.js
@@ -1,6 +1,6 @@
import mongoose from 'mongoose';
import autoinc from 'mongoose-id-autoinc';
-import logger from '../website/server/libs/api-v3/logger';
+import logger from '../website/server/libs/logger';
import nconf from 'nconf';
import repl from 'repl';
import gulp from 'gulp';
diff --git a/tasks/gulp-tests.js b/tasks/gulp-tests.js
index 7db299a5c4..e7dd6e01f0 100644
--- a/tasks/gulp-tests.js
+++ b/tasks/gulp-tests.js
@@ -21,15 +21,12 @@ let server;
const TEST_DB_URI = nconf.get('TEST_DB_URI');
-const API_V2_TEST_COMMAND = 'npm run test:api-v2:integration';
const API_V3_TEST_COMMAND = 'npm run test:api-v3';
-const LEGACY_API_TEST_COMMAND = 'npm run test:api-legacy';
+const SANITY_TEST_COMMAND = 'npm run test:sanity';
const COMMON_TEST_COMMAND = 'npm run test:common';
const CONTENT_TEST_COMMAND = 'npm run test:content';
const CONTENT_OPTIONS = {maxBuffer: 1024 * 500};
const KARMA_TEST_COMMAND = 'npm run test:karma';
-const SERVER_SIDE_TEST_COMMAND = 'npm run test:api-v2:unit';
-const ISTANBUL_TEST_COMMAND = 'npm run test:api-legacy';
/* Helper methods for reporting test summary */
let testResults = [];
@@ -89,6 +86,16 @@ gulp.task('test:prepare', [
'test:prepare:webdriver'
]);
+gulp.task('test:sanity', (cb) => {
+ let runner = exec(
+ testBin(SANITY_TEST_COMMAND),
+ (err, stdout, stderr) => {
+ cb(err);
+ }
+ );
+ pipe(runner);
+});
+
gulp.task('test:common', ['test:prepare:build'], (cb) => {
let runner = exec(
testBin(COMMON_TEST_COMMAND),
@@ -185,43 +192,6 @@ gulp.task('test:server_side:safe', ['test:prepare:build'], (cb) => {
pipe(runner);
});
-gulp.task('test:api-legacy', ['test:prepare:mongo'], (cb) => {
- let runner = exec(
- testBin(ISTANBUL_TEST_COMMAND),
- (err, stdout, stderr) => {
- cb(err);
- }
- );
- pipe(runner);
-});
-
-gulp.task('test:api-legacy:safe', ['test:prepare:mongo'], (cb) => {
- let runner = exec(
- testBin(ISTANBUL_TEST_COMMAND),
- (err, stdout, stderr) => {
- testResults.push({
- suite: 'API (legacy) Specs',
- pass: testCount(stdout, /(\d+) passing/),
- fail: testCount(stdout, /(\d+) failing/),
- pend: testCount(stdout, /(\d+) pending/)
- });
- cb();
- }
- );
- pipe(runner);
-});
-
-gulp.task('test:api-legacy:clean', (cb) => {
- pipe(exec(testBin(LEGACY_API_TEST_COMMAND), () => cb()));
-});
-
-gulp.task('test:api-legacy:watch', [
- 'test:prepare:mongo',
- 'test:api-legacy:clean'
-], () => {
- gulp.watch(['website/server/**', 'test/api-legacy/**'], ['test:api-legacy:clean']);
-});
-
gulp.task('test:karma', ['test:prepare:build'], (cb) => {
let runner = exec(
testBin(KARMA_TEST_COMMAND),
@@ -309,46 +279,6 @@ gulp.task('test:e2e:safe', ['test:prepare', 'test:prepare:server'], (cb) => {
});
});
-/*gulp.task('test:api-v2', ['test:prepare:server'], (done) => {
- process.env.API_VERSION = 'v2';
- awaitPort(TEST_SERVER_PORT).then(() => {
- runMochaTests('./test/api/v2/**//*.js', server, done)
- });
-});
-
-gulp.task('test:api-v2:watch', ['test:prepare:server'], () => {
- process.env.RUN_INTEGRATION_TEST_FOREVER = true;
- gulp.watch(['website/server/**', 'test/api/v2/**'], ['test:api-v2']);
-});
-
-gulp.task('test:api-v2:safe', ['test:prepare:server'], (done) => {
- awaitPort(TEST_SERVER_PORT).then(() => {
- let runner = exec(
- testBin(API_V2_TEST_COMMAND),
- (err, stdout, stderr) => {
- testResults.push({
- suite: 'API V2 Specs\t',
- pass: testCount(stdout, /(\d+) passing/),
- fail: testCount(stderr, /(\d+) failing/),
- pend: testCount(stdout, /(\d+) pending/)
- });
- done();
- }
- );
- pipe(runner);
- });
-});*/
-
-gulp.task('test:api-v2:integration', (done) => {
- let runner = exec(
- testBin('mocha test/api/v2 --recursive'),
- {maxBuffer: 500*1024},
- (err, stdout, stderr) => done(err)
- )
-
- pipe(runner);
-});
-
gulp.task('test:api-v3:unit', (done) => {
let runner = exec(
testBin('mocha test/api/v3/unit --recursive'),
@@ -359,7 +289,7 @@ gulp.task('test:api-v3:unit', (done) => {
});
gulp.task('test:api-v3:unit:watch', () => {
- gulp.watch(['website/server/libs/api-v3/*', 'test/api/v3/unit/**/*', 'website/server/controllers/**/*'], ['test:api-v3:unit']);
+ gulp.watch(['website/server/libs/*', 'test/api/v3/unit/**/*', 'website/server/controllers/**/*'], ['test:api-v3:unit']);
});
gulp.task('test:api-v3:integration', (done) => {
@@ -373,7 +303,7 @@ gulp.task('test:api-v3:integration', (done) => {
});
gulp.task('test:api-v3:integration:watch', () => {
- gulp.watch(['website/server/controllers/api-v3/**/*', 'common/script/ops/*', 'website/server/libs/api-v3/*.js',
+ gulp.watch(['website/server/controllers/api-v3/**/*', 'common/script/ops/*', 'website/server/libs/*.js',
'test/api/v3/integration/**/*'], ['test:api-v3:integration']);
});
@@ -389,11 +319,11 @@ gulp.task('test:api-v3:integration:separate-server', (done) => {
gulp.task('test', (done) => {
runSequence(
+ 'test:sanity',
'test:common',
'test:karma',
'test:api-v3:unit',
'test:api-v3:integration',
- 'test:api-v2:integration',
done
);
});
@@ -404,100 +334,4 @@ gulp.task('test:api-v3', (done) => {
'test:api-v3:integration',
done
);
-});
-
-// Old tests tasks
-/*
-gulp.task('test:api-v3', ['test:api-v3:unit', 'test:api-v3:integration']);
-
-gulp.task('test:api-v3:watch', ['test:api-v3:unit:watch', 'test:api-v3:integration:watch']);
-
-gulp.task('test:api-v3:unit', (done) => {*/
-// runMochaTests('./test/api/v3/unit/**/*.js', null, done)
-/*});
-
-gulp.task('test:api-v3:unit:watch', () => {
- gulp.watch(['website/server/**', 'test/api/v3/unit/**'], ['test:api-v3:unit']);
-});
-
-gulp.task('test:api-v3:integration', ['test:prepare:server'], (done) => {
- process.env.API_VERSION = 'v3';
- awaitPort(TEST_SERVER_PORT).then(() => {*/
-// runMochaTests('./test/api/v3/integration/**/*.js', server, done)
-/* });
-});
-
-gulp.task('test:api-v3:integration:watch', ['test:prepare:server'], () => {
- process.env.RUN_INTEGRATION_TEST_FOREVER = true;
- gulp.watch(['website/server/**', 'test/api/v3/integration/**'], ['test:api-v3:integration']);
-});
-
-gulp.task('test:api-v3:safe', ['test:prepare:server'], (done) => {
- awaitPort(TEST_SERVER_PORT).then(() => {
- let runner = exec(
- testBin(API_V3_TEST_COMMAND),
- (err, stdout, stderr) => {
- testResults.push({
- suite: 'API V3 Specs\t',
- pass: testCount(stdout, /(\d+) passing/),
- fail: testCount(stdout, /(\d+) failing/),
- pend: testCount(stdout, /(\d+) pending/)
- });
- done();
- }
- );
- pipe(runner);
- });
-});
-
-gulp.task('test:all', (done) => {
- runSequence(
- //'test:e2e:safe',
- //'test:common:safe',
- //'test:content:safe',
- // 'test:server_side:safe',
- //'test:karma:safe',
- //'test:api-legacy:safe',
- //'test:api-v2:safe',
- 'test:api-v3:safe',
- done);
-});
-
-gulp.task('test', ['test:all'], () => {
- let totals = [0,0,0];
-
- console.log('\n\x1b[36m\x1b[4mHabitica Test Summary\x1b[0m\n');
- testResults.forEach((s) => {
- totals[0] = totals[0] + s.pass;
- totals[1] = totals[1] + s.fail;
- totals[2] = totals[2] + s.pend;
- console.log(
- `\x1b[33m\x1b[4m${s.suite}\x1b[0m\t`,
- `\x1b[32mPassing: ${s.pass},\t`,
- `\x1b[31mFailed: ${s.fail},\t`,
- `\x1b[36mPending: ${s.pend}\t`
- );
-
- if (s.pass === 0) {
- console.error('ERROR: Detected a test suite with 0 passing tests. Something may be wrong causing the build to error.');
- process.exit(1);
- }
- });
-
- console.log(
- '\n\x1b[33m\x1b[4mTotal:\x1b[0m\t\t\t',
- `\x1b[32mPassing: ${totals[0]},\t`,
- `\x1b[31mFailed: ${totals[1]},\t`,
- `\x1b[36mPending: ${totals[2]}\t`
- );
-
- kill(server);
-
- if (totals[1] > 0) {
- console.error('ERROR: There are failing tests!');
- process.exit(1);
- } else {
- console.log('\n\x1b[36mThanks for helping keep Habitica clean!\x1b[0m');
- process.exit();
- }
-});*/
+});
\ No newline at end of file
diff --git a/test/api-legacy/README.md b/test/api-legacy/README.md
deleted file mode 100644
index 9157af554d..0000000000
--- a/test/api-legacy/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Legacy API Tests
-
-These tests have been deprecated. Any tests that you see in this folder should be converted to ES2015 and ported to the `/test/api` directory.
-
-Once all tests have been ported, this directory will be removed.
diff --git a/test/api-legacy/api-helper.js b/test/api-legacy/api-helper.js
deleted file mode 100644
index 1b994a80a8..0000000000
--- a/test/api-legacy/api-helper.js
+++ /dev/null
@@ -1,92 +0,0 @@
-require('babel-core/register');
-var path, superagentDefaults;
-
-superagentDefaults = require("superagent-defaults");
-
-global.request = superagentDefaults();
-
-global.mongoose = require("mongoose");
-var Bluebird = require('bluebird');
-mongoose.Promise = Bluebird;
-
-global.moment = require("moment");
-
-global.async = require("async");
-
-global._ = require("lodash");
-
-global.shared = require("../../common");
-
-global.User = require("../../website/server/models/user").model;
-
-global.chai = require("chai");
-
-chai.use(require("sinon-chai"));
-
-global.expect = chai.expect;
-
-path = require("path");
-
-global.conf = require("nconf");
-
-conf.argv().env().file({
- file: path.join(__dirname, "../config.json")
-}).defaults();
-
-conf.set("PORT", "1337");
-
-process.env.NODE_DB_URI = "mongodb://localhost/habitrpg_test_api_legacy";
-
-global.baseURL = "http://localhost:" + conf.get("PORT") + "/api/v2";
-
-global.user = void 0;
-
-global.expectCode = function(res, code) {
- if (code === 200) {
- expect(res.body.err).to.not.exist;
- }
- return expect(res.statusCode).to.equal(code);
-};
-
-global.registerNewUser = function(cb, main) {
- var password, randomID, username;
- if (main == null) {
- main = true;
- }
- randomID = shared.uuid();
- if (main) {
- username = password = randomID;
- }
- return request.post(baseURL + "/register").set("Accept", "application/json").set("X-API-User", null).set("X-API-Key", null).send({
- username: randomID,
- password: randomID,
- confirmPassword: randomID,
- email: randomID + "@gmail.com"
- }).end(function(err, res) {
- var _id, apiToken;
- if (!main) {
- return cb(null, res.body);
- }
- _id = res.body._id;
- apiToken = res.body.apiToken;
- return User.findOne({
- _id: _id,
- apiToken: apiToken
- }, function(err, _user) {
- expect(err).to.not.be.ok;
- global.user = _user;
- request.set("Accept", "application/json").set("X-API-User", _id).set("X-API-Key", apiToken);
- return cb(null, res.body);
- });
- });
-};
-
-global.registerManyUsers = function(number, callback) {
- return async.times(number, function(n, next) {
- return registerNewUser(function(err, user) {
- return next(err, user);
- }, false);
- }, function(err, users) {
- return callback(err, users);
- });
-};
diff --git a/test/api-legacy/challenges.js b/test/api-legacy/challenges.js
deleted file mode 100644
index b09754bc5c..0000000000
--- a/test/api-legacy/challenges.js
+++ /dev/null
@@ -1,412 +0,0 @@
-var Challenge, Group, app;
-
-app = require("../../website/server/server");
-
-Group = require("../../website/server/models/group").model;
-
-Challenge = require("../../website/server/models/challenge").model;
-
-describe("Challenges", function() {
- var challenge, group, updateTodo;
- challenge = void 0;
- updateTodo = void 0;
- group = void 0;
- beforeEach(function(done) {
- return async.waterfall([
- function(cb) {
- return registerNewUser(cb, true);
- }, function(user, cb) {
- return request.post(baseURL + "/groups").send({
- name: "TestGroup",
- type: "party"
- }).end(function(err, res) {
- expectCode(res, 200);
- group = res.body;
- expect(group.members.length).to.equal(1);
- expect(group.leader).to.equal(user._id);
- return cb();
- });
- }, function(cb) {
- return request.post(baseURL + "/challenges").send({
- group: group._id,
- dailys: [
- {
- type: "daily",
- text: "Challenge Daily"
- }
- ],
- todos: [
- {
- type: "todo",
- text: "Challenge Todo 1",
- notes: "Challenge Notes"
- }
- ],
- rewards: [],
- habits: []
- }).end(function(err, res) {
- challenge = res.body;
- return done();
- });
- }
- ]);
- });
- describe('POST /challenge', function() {
- return it("Creates a challenge", function(done) {
- return request.post(baseURL + "/challenges").send({
- group: group._id,
- dailys: [
- {
- type: "daily",
- text: "Challenge Daily"
- }
- ],
- todos: [
- {
- type: "todo",
- text: "Challenge Todo 1",
- notes: "Challenge Notes"
- }, {
- type: "todo",
- text: "Challenge Todo 2",
- notes: "Challenge Notes"
- }
- ],
- rewards: [],
- habits: [],
- official: true
- }).end(function(err, res) {
- expectCode(res, 200);
- return async.parallel([
- function(cb) {
- return User.findById(user._id, cb);
- }, function(cb) {
- return Challenge.findById(res.body._id, cb);
- }
- ], function(err, results) {
- var user;
- user = results[0];
- challenge = results[1];
- expect(user.dailys[user.dailys.length - 1].text).to.equal("Challenge Daily");
- expect(challenge.official).to.equal(false);
- return done();
- });
- });
- });
- });
- describe('POST /challenge/:cid', function() {
- it("updates the notes on user's version of a challenge task's note without updating the challenge", function(done) {
- updateTodo = challenge.todos[0];
- updateTodo.notes = "User overriden notes";
- return async.waterfall([
- function(cb) {
- return request.put(baseURL + "/user/tasks/" + updateTodo.id).send(updateTodo).end(function(err, res) {
- return cb();
- });
- }, function(cb) {
- return Challenge.findById(challenge._id, cb);
- }, function(chal, cb) {
- expect(chal.todos[0].notes).to.eql("Challenge Notes");
- return cb();
- }, function(cb) {
- return request.get(baseURL + "/user/tasks/" + updateTodo.id).end(function(err, res) {
- expect(res.body.notes).to.eql("User overriden notes");
- return done();
- });
- }
- ]);
- });
- it("changes user's copy of challenge tasks when the challenge is updated", function(done) {
- challenge.dailys[0].text = "Updated Daily";
- return request.post(baseURL + "/challenges/" + challenge._id).send(challenge).end(function(err, res) {
- challenge = res.body;
- expect(challenge.dailys[0].text).to.equal("Updated Daily");
- return User.findById(user._id, function(err, _user) {
- expectCode(res, 200);
- expect(_user.dailys[_user.dailys.length - 1].text).to.equal("Updated Daily");
- return done();
- });
- });
- });
- it("does not changes user's notes on tasks when challenge task notes are updated", function(done) {
- challenge.todos[0].notes = "Challenge Updated Todo Notes";
- return request.post(baseURL + "/challenges/" + challenge._id).send(challenge).end(function(err, res) {
- challenge = res.body;
- expect(challenge.todos[0].notes).to.equal("Challenge Updated Todo Notes");
- return User.findById(user._id, function(err, _user) {
- expectCode(res, 200);
- expect(_user.todos[_user.todos.length - 1].notes).to.equal("Challenge Notes");
- return done();
- });
- });
- });
- return it("shows user notes on challenge page", function(done) {
- updateTodo = challenge.todos[0];
- updateTodo.notes = "User overriden notes";
- return async.waterfall([
- function(cb) {
- return request.put(baseURL + "/user/tasks/" + updateTodo.id).send(updateTodo).end(function(err, res) {
- return cb();
- });
- }, function(cb) {
- return Challenge.findById(challenge._id, cb);
- }, function(chal, cb) {
- expect(chal.todos[0].notes).to.eql("Challenge Notes");
- return cb();
- }, function(cb) {
- return request.get(baseURL + "/challenges/" + challenge._id + "/member/" + user._id).end(function(err, res) {
- expect(res.body.todos[res.body.todos.length - 1].notes).to.equal("User overriden notes");
- return done();
- });
- }
- ]);
- });
- });
- it("Complete To-Dos", function(done) {
- return User.findById(user._id, function(err, _user) {
- var numTasks, u;
- u = _user;
- numTasks = _.size(u.todos);
- return request.post(baseURL + "/user/tasks/" + u.todos[0].id + "/up").end(function(err, res) {
- return request.post(baseURL + "/user/tasks/clear-completed").end(function(err, res) {
- expect(_.size(res.body)).to.equal(numTasks - 1);
- return done();
- });
- });
- });
- });
- it("Challenge deleted, breaks task link", function(done) {
- var itThis;
- itThis = this;
- return request.del(baseURL + "/challenges/" + challenge._id).end(function(err, res) {
- return User.findById(user._id, function(err, user) {
- var daily, len, unset;
- len = user.dailys.length - 1;
- daily = user.dailys[user.dailys.length - 1];
- expect(daily.challenge.broken).to.equal("CHALLENGE_DELETED");
- unset = {
- $unset: {}
- };
- unset["$unset"]["dailys." + len + ".challenge.broken"] = 1;
- return User.findByIdAndUpdate(user._id, unset, {
- "new": true
- }, function(err, user) {
- expect(err).to.not.exist;
- expect(user.dailys[len].challenge.broken).to.not.exist;
- return request.post(baseURL + "/user/tasks/" + daily.id + "/up").end(function(err, res) {
- return setTimeout((function() {
- return User.findById(user._id, function(err, user) {
- expect(user.dailys[len].challenge.broken).to.equal("CHALLENGE_DELETED");
- return done();
- });
- }), 100);
- });
- });
- });
- });
- });
- it("admin creates a challenge", function(done) {
- return User.findByIdAndUpdate(user._id, {
- $set: {
- "contributor.admin": true
- }
- }, {
- "new": true
- }, function(err, _user) {
- expect(err).to.not.exist;
- return async.parallel([
- function(cb) {
- return request.post(baseURL + "/challenges").send({
- group: group._id,
- dailys: [],
- todos: [],
- rewards: [],
- habits: [],
- official: false
- }).end(function(err, res) {
- expect(res.body.official).to.equal(false);
- return cb();
- });
- }, function(cb) {
- return request.post(baseURL + "/challenges").send({
- group: group._id,
- dailys: [],
- todos: [],
- rewards: [],
- habits: [],
- official: true
- }).end(function(err, res) {
- expect(res.body.official).to.equal(true);
- return cb();
- });
- }
- ], done);
- });
- });
- it("User creates a non-tavern challenge with prize, deletes it, gets refund", function(done) {
- return User.findByIdAndUpdate(user._id, {
- $set: {
- "balance": 8
- }
- }, {
- "new": true
- }, function(err, user) {
- expect(err).to.not.be.ok;
- return request.post(baseURL + "/challenges").send({
- group: group._id,
- dailys: [],
- todos: [],
- rewards: [],
- habits: [],
- prize: 10
- }).end(function(err, res) {
- expect(res.body.prize).to.equal(10);
- return async.parallel([
- function(cb) {
- return User.findById(user._id, cb);
- }, function(cb) {
- return Challenge.findById(res.body._id, cb);
- }
- ], function(err, results) {
- user = results[0];
- challenge = results[1];
- expect(user.balance).to.equal(5.5);
- return request.del(baseURL + "/challenges/" + challenge._id).end(function(err, res) {
- return User.findById(user._id, function(err, _user) {
- expect(_user.balance).to.equal(8);
- return done();
- });
- });
- });
- });
- });
- });
- it("User creates a tavern challenge with prize, deletes it, and does not get refund", function(done) {
- return User.findByIdAndUpdate(user._id, {
- $set: {
- "balance": 8
- }
- }, {
- "new": true
- }, function(err, user) {
- expect(err).to.not.be.ok;
- return request.post(baseURL + "/challenges").send({
- group: 'habitrpg',
- dailys: [],
- todos: [],
- rewards: [],
- habits: [],
- prize: 10
- }).end(function(err, res) {
- expect(res.body.prize).to.equal(10);
- return async.parallel([
- function(cb) {
- return User.findById(user._id, cb);
- }, function(cb) {
- return Challenge.findById(res.body._id, cb);
- }
- ], function(err, results) {
- user = results[0];
- challenge = results[1];
- expect(user.balance).to.equal(5.5);
- return request.del(baseURL + "/challenges/" + challenge._id).end(function(err, res) {
- return User.findById(user._id, function(err, _user) {
- expect(_user.balance).to.equal(5.5);
- return done();
- });
- });
- });
- });
- });
- });
- return describe("non-owner permissions", function() {
- challenge = void 0;
- beforeEach(function(done) {
- return async.waterfall([
- function(cb) {
- return request.post(baseURL + "/challenges").send({
- group: group._id,
- name: 'challenge name',
- dailys: [
- {
- type: "daily",
- text: "Challenge Daily"
- }
- ]
- }).end(function(err, res) {
- challenge = res.body;
- return cb();
- });
- }, function(cb) {
- return registerNewUser(done, true);
- }
- ]);
- });
- context("non-owner", function() {
- it('can not edit challenge', function(done) {
- challenge.name = 'foobar';
- return request.post(baseURL + "/challenges/" + challenge._id).send(challenge).end(function(err, res) {
- var error;
- error = res.body.err;
- expect(error).to.eql("You don't have permissions to edit this challenge");
- return done();
- });
- });
- it('can not close challenge', function(done) {
- return request.post(baseURL + "/challenges/" + challenge._id + "/close?uid=" + user._id).end(function(err, res) {
- var error;
- error = res.body.err;
- expect(error).to.eql("You don't have permissions to close this challenge");
- return done();
- });
- });
- return it('can not delete challenge', function(done) {
- return request.del(baseURL + "/challenges/" + challenge._id).end(function(err, res) {
- var error;
- error = res.body.err;
- expect(error).to.eql("You don't have permissions to delete this challenge");
- return done();
- });
- });
- });
- return context("non-owner that is an admin", function() {
- beforeEach(function(done) {
- return User.findByIdAndUpdate(user._id, {
- 'contributor.admin': true
- }, {
- "new": true
- }, done);
- });
- it('can edit challenge', function(done) {
- challenge.name = 'foobar';
- return request.post(baseURL + "/challenges/" + challenge._id).send(challenge).end(function(err, res) {
- expect(res.body.err).to.not.exist;
- return Challenge.findById(challenge._id, function(err, chal) {
- expect(chal.name).to.eql('foobar');
- return done();
- });
- });
- });
- it('can close challenge', function(done) {
- return request.post(baseURL + "/challenges/" + challenge._id + "/close?uid=" + user._id).end(function(err, res) {
- expect(res.body.err).to.not.exist;
- return User.findById(user._id, function(err, usr) {
- expect(usr.achievements.challenges[0]).to.eql(challenge.name);
- return done();
- });
- });
- });
- return it('can delete challenge', function(done) {
- return request.del(baseURL + "/challenges/" + challenge._id).end(function(err, res) {
- expect(res.body.err).to.not.exist;
- return request.get(baseURL + "/challenges/" + challenge._id).end(function(err, res) {
- var error;
- error = res.body.err;
- expect(error).to.eql("Challenge " + challenge._id + " not found");
- return done();
- });
- });
- });
- });
- });
-});
diff --git a/test/api-legacy/chat.js b/test/api-legacy/chat.js
deleted file mode 100644
index 1f2dbab487..0000000000
--- a/test/api-legacy/chat.js
+++ /dev/null
@@ -1,71 +0,0 @@
-var Group, app, diff;
-
-diff = require("deep-diff");
-
-Group = require("../../website/server/models/group").model;
-
-app = require("../../website/server/server");
-
-describe("Chat", function() {
- var chat, group;
- group = void 0;
- before(function(done) {
- return async.waterfall([
- function(cb) {
- return registerNewUser(cb, true);
- }, function(user, cb) {
- return request.post(baseURL + "/groups").send({
- name: "TestGroup",
- type: "party"
- }).end(function(err, res) {
- expectCode(res, 200);
- group = res.body;
- expect(group.members.length).to.equal(1);
- expect(group.leader).to.equal(user._id);
- return cb();
- });
- }
- ], done);
- });
- chat = void 0;
- return it("removes a user's chat notifications when user is kicked", function(done) {
- var userToRemove;
- userToRemove = null;
- return async.waterfall([
- function(cb) {
- return registerManyUsers(1, cb);
- }, function(members, cb) {
- userToRemove = members[0];
- return request.post(baseURL + "/groups/" + group._id + "/invite").send({
- uuids: [userToRemove._id]
- }).end(function() {
- return cb();
- });
- }, function(cb) {
- return request.post(baseURL + "/groups/" + group._id + "/join").set("X-API-User", userToRemove._id).set("X-API-Key", userToRemove.apiToken).end(function(err, res) {
- return cb();
- });
- }, function(cb) {
- var msg;
- msg = "TestMsg";
- return request.post(baseURL + "/groups/" + group._id + "/chat?message=" + msg).end(function(err, res) {
- return cb();
- });
- }, function(cb) {
- return request.get(baseURL + "/user").set("X-API-User", userToRemove._id).set("X-API-Key", userToRemove.apiToken).end(function(err, res) {
- expect(res.body.newMessages[group._id]).to.exist;
- return cb();
- });
- }, function(cb) {
- return request.post(baseURL + "/groups/" + group._id + "/removeMember?uuid=" + userToRemove._id).end(function(err, res) {
- return cb();
- });
- }, function(cb) {
- return request.get(baseURL + "/user").set("X-API-User", userToRemove._id).set("X-API-Key", userToRemove.apiToken).end(function(err, res) {
- expect(res.body.newMessages[group._id]).to.not.exist;
- return cb();
- });
- }
- ], done);
- });
-});
diff --git a/test/api-legacy/coupons.js b/test/api-legacy/coupons.js
deleted file mode 100644
index 4d4e366473..0000000000
--- a/test/api-legacy/coupons.js
+++ /dev/null
@@ -1,221 +0,0 @@
-var Coupon, app, makeSudoUser;
-
-app = require("../../website/server/server");
-
-Coupon = require("../../website/server/models/coupon").model;
-
-makeSudoUser = function(usr, cb) {
- return registerNewUser(function() {
- var sudoUpdate;
- sudoUpdate = {
- "$set": {
- "contributor.sudo": true
- }
- };
- return User.findByIdAndUpdate(user._id, sudoUpdate, {
- "new": true
- }, function(err, _user) {
- usr = _user;
- return cb();
- });
- }, true);
-};
-
-describe("Coupons", function() {
- var coupons;
- before(function(done) {
- return async.parallel([
- function(cb) {
- return mongoose.connection.collections['coupons'].drop(function(err) {
- return cb();
- });
- }, function(cb) {
- return mongoose.connection.collections['users'].drop(function(err) {
- return cb();
- });
- }
- ], done);
- });
- coupons = null;
- describe("POST /api/v2/coupons/generate/:event", function() {
- context("while sudo user", function() {
- before(function(done) {
- makeSudoUser(user, done);
- });
-
- it("generates coupons", function(done) {
- var queries;
- queries = '?count=10';
-
- request.post(baseURL + '/coupons/generate/wondercon' + queries).end(function(err, res) {
- expectCode(res, 200);
- Coupon.find({
- event: 'wondercon'
- }, function(err, _coupons) {
- coupons = _coupons;
- expect(coupons.length).to.equal(10);
- _(coupons).each(function(c) {
- expect(c.event).to.equal('wondercon');
- }).value();
- done();
- });
- });
- });
- });
-
- return context("while regular user", function() {
- before(function(done) {
- return registerNewUser(done, true);
- });
- return it("does not generate coupons", function(done) {
- var queries;
- queries = '?count=10';
- return request.post(baseURL + '/coupons/generate/wondercon' + queries).end(function(err, res) {
- expectCode(res, 401);
- expect(res.body.err).to.equal('You don\'t have admin access');
- return done();
- });
- });
- });
- });
- describe("GET /api/v2/coupons", function() {
- context("while sudo user", function() {
- before(function(done) {
- return makeSudoUser(user, done);
- });
- it("gets coupons", function(done) {
- var queries;
- queries = '?_id=' + user._id + '&apiToken=' + user.apiToken;
- return request.get(baseURL + '/coupons' + queries).end(function(err, res) {
- var codes;
- expectCode(res, 200);
- codes = res.text;
- expect(codes).to.contain('code');
- _(coupons).each(function(c) {
- return expect(codes).to.contain(c._id);
- }).value();
- return done();
- });
- });
- it("gets first 5 coupons out of 10 when a limit of 5 is set", function(done) {
- var queries;
- queries = '?_id=' + user._id + '&apiToken=' + user.apiToken + '&limit=5';
- return request.get(baseURL + '/coupons' + queries).end(function(err, res) {
- var codes, firstHalf, secondHalf, sortedCoupons;
- expectCode(res, 200);
- codes = res.text;
- sortedCoupons = _.sortBy(coupons, 'seq');
- firstHalf = sortedCoupons.slice(0, 5);
- secondHalf = sortedCoupons.slice(5, 10);
- _(firstHalf).each(function(c) {
- return expect(codes).to.contain(c._id);
- }).value();
- _(secondHalf).each(function(c) {
- return expect(codes).to.not.contain(c._id);
- }).value();
- return done();
- });
- });
- return it("gets last 5 coupons out of 10 when a limit of 5 is set", function(done) {
- var queries;
- queries = '?_id=' + user._id + '&apiToken=' + user.apiToken + '&skip=5';
- return request.get(baseURL + '/coupons' + queries).end(function(err, res) {
- var codes, firstHalf, secondHalf, sortedCoupons;
- expectCode(res, 200);
- codes = res.text;
- sortedCoupons = _.sortBy(coupons, 'seq');
- firstHalf = sortedCoupons.slice(0, 5);
- secondHalf = sortedCoupons.slice(5, 10);
- _(firstHalf).each(function(c) {
- return expect(codes).to.not.contain(c._id);
- }).value();
- _(secondHalf).each(function(c) {
- return expect(codes).to.contain(c._id);
- }).value();
- return done();
- });
- });
- });
- return context("while regular user", function() {
- before(function(done) {
- return registerNewUser(done, true);
- });
- return it("does not get coupons", function(done) {
- var queries;
- queries = '?_id=' + user._id + '&apiToken=' + user.apiToken;
- return request.get(baseURL + '/coupons' + queries).end(function(err, res) {
- expectCode(res, 401);
- expect(res.body.err).to.equal('You don\'t have admin access');
- return done();
- });
- });
- });
- });
- return describe("POST /api/v2/user/coupon/:code", function() {
- var specialGear;
- specialGear = function(gear, has) {
- var items;
- items = ['body_special_wondercon_gold', 'body_special_wondercon_black', 'body_special_wondercon_red', 'back_special_wondercon_red', 'back_special_wondercon_black', 'back_special_wondercon_red', 'eyewear_special_wondercon_black', 'eyewear_special_wondercon_red'];
- return _(items).each(function(i) {
- if (has) {
- return expect(gear[i]).to.exist;
- } else {
- return expect(gear[i]).to.not.exist;
- }
- }).value();
- };
- beforeEach(function(done) {
- return registerNewUser(function() {
- var gear;
- gear = user.items.gear.owned;
- specialGear(gear, false);
- return done();
- }, true);
- });
- context("unused coupon", function() {
- return it("applies coupon and awards equipment", function(done) {
- var code;
- code = coupons[0]._id;
- return request.post(baseURL + '/user/coupon/' + code).end(function(err, res) {
- var gear;
- expectCode(res, 200);
- gear = res.body.items.gear.owned;
- specialGear(gear, true);
- return done();
- });
- });
- });
- context("already used coupon", function() {
- return it("does not apply coupon and does not award equipment", function(done) {
- var code;
- code = coupons[0]._id;
- return request.post(baseURL + '/user/coupon/' + code).end(function(err, res) {
- expectCode(res, 400);
- expect(res.body.err).to.equal("Coupon already used");
- return User.findById(user._id, function(err, _user) {
- var gear;
- gear = _user.items.gear.owned;
- specialGear(gear, false);
- return done();
- });
- });
- });
- });
- return context("invalid coupon", function() {
- return it("does not apply coupon and does not award equipment", function(done) {
- var code;
- code = "not-a-real-coupon";
- return request.post(baseURL + '/user/coupon/' + code).end(function(err, res) {
- expectCode(res, 400);
- expect(res.body.err).to.equal("Invalid coupon code");
- return User.findById(user._id, function(err, _user) {
- var gear;
- gear = _user.items.gear.owned;
- specialGear(gear, false);
- return done();
- });
- });
- });
- });
- });
-});
diff --git a/test/api-legacy/inAppPurchases.js b/test/api-legacy/inAppPurchases.js
deleted file mode 100644
index 96809a7717..0000000000
--- a/test/api-legacy/inAppPurchases.js
+++ /dev/null
@@ -1,367 +0,0 @@
-var app, iapMock, inApp, rewire, sinon;
-
-app = require('../../website/server/server');
-
-rewire = require('rewire');
-
-sinon = require('sinon');
-
-inApp = rewire('../../website/server/controllers/payments/iap');
-
-iapMock = {};
-
-inApp.__set__('iap', iapMock);
-
-describe('In-App Purchases', function() {
- describe('Android', function() {
- var next, paymentSpy, req, res;
- req = {
- body: {
- transaction: {
- reciept: 'foo',
- signature: 'sig'
- }
- }
- };
- res = {
- locals: {
- user: {
- _id: 'user'
- }
- },
- json: sinon.spy()
- };
- next = function() {
- return true;
- };
- paymentSpy = sinon.spy();
- before(function() {
- return inApp.__set__('payments.buyGems', paymentSpy);
- });
- afterEach(function() {
- paymentSpy.reset();
- return res.json.reset();
- });
- context('successful app purchase', function() {
- before(function() {
- iapMock.setup = function(cb) {
- return cb(null);
- };
- iapMock.validate = function(iapGoogle, iapBodyReciept, cb) {
- return cb(null, true);
- };
- iapMock.isValidated = function(googleRes) {
- return googleRes;
- };
- return iapMock.GOOGLE = 'google';
- });
- it('calls res.json with succesful result object', function() {
- var expectedResObj;
- expectedResObj = {
- ok: true,
- data: true
- };
- inApp.androidVerify(req, res, next);
- expect(res.json).to.be.calledOnce;
- return expect(res.json).to.be.calledWith(expectedResObj);
- });
- return it('calls payments.buyGems function', function() {
- inApp.androidVerify(req, res, next);
- expect(paymentSpy).to.be.calledOnce;
- return expect(paymentSpy).to.be.calledWith({
- user: res.locals.user,
- paymentMethod: 'IAP GooglePlay',
- amount: 5.25
- });
- });
- });
- context('error in setup', function() {
- before(function() {
- return iapMock.setup = function(cb) {
- return cb("error in setup");
- };
- });
- it('calls res.json with setup error object', function() {
- var expectedResObj;
- expectedResObj = {
- ok: false,
- data: 'IAP Error'
- };
- inApp.androidVerify(req, res, next);
- expect(res.json).to.be.calledOnce;
- return expect(res.json).to.be.calledWith(expectedResObj);
- });
- return it('does not calls payments.buyGems function', function() {
- inApp.androidVerify(req, res, next);
- return expect(paymentSpy).to.not.be.called;
- });
- });
- context('error in validation', function() {
- before(function() {
- iapMock.setup = function(cb) {
- return cb(null);
- };
- return iapMock.validate = function(iapGoogle, iapBodyReciept, cb) {
- return cb('error in validation', true);
- };
- });
- it('calls res.json with validation error object', function() {
- var expectedResObj;
- expectedResObj = {
- ok: false,
- data: {
- code: 6778001,
- message: 'error in validation'
- }
- };
- inApp.androidVerify(req, res, next);
- expect(res.json).to.be.calledOnce;
- return expect(res.json).to.be.calledWith(expectedResObj);
- });
- return it('does not calls payments.buyGems function', function() {
- inApp.androidVerify(req, res, next);
- return expect(paymentSpy).to.not.be.called;
- });
- });
- return context('iap is not valid', function() {
- before(function() {
- iapMock.setup = function(cb) {
- return cb(null);
- };
- iapMock.validate = function(iapGoogle, iapBodyReciept, cb) {
- return cb(null, false);
- };
- return iapMock.isValidated = function(googleRes) {
- return googleRes;
- };
- });
- it('does not call res.json', function() {
- inApp.androidVerify(req, res, next);
- return expect(res.json).to.not.be.called;
- });
- return it('does not calls payments.buyGems function', function() {
- inApp.androidVerify(req, res, next);
- return expect(paymentSpy).to.not.be.called;
- });
- });
- });
- return describe('iOS', function() {
- var next, paymentSpy, req, res;
- req = {
- body: {
- transaction: {
- reciept: 'foo'
- }
- }
- };
- res = {
- locals: {
- user: {
- _id: 'user'
- }
- },
- json: sinon.spy()
- };
- next = function() {
- return true;
- };
- paymentSpy = sinon.spy();
- before(function() {
- return inApp.__set__('payments.buyGems', paymentSpy);
- });
- afterEach(function() {
- paymentSpy.reset();
- return res.json.reset();
- });
- context('successful app purchase', function() {
- before(function() {
- iapMock.setup = function(cb) {
- return cb(null);
- };
- iapMock.validate = function(iapApple, iapBodyReciept, cb) {
- return cb(null, true);
- };
- iapMock.isValidated = function(appleRes) {
- return appleRes;
- };
- iapMock.getPurchaseData = function(appleRes) {
- return [
- {
- productId: 'com.habitrpg.ios.Habitica.20gems'
- }
- ];
- };
- return iapMock.APPLE = 'apple';
- });
- it('calls res.json with succesful result object', function() {
- var expectedResObj;
- expectedResObj = {
- ok: true,
- data: true
- };
- inApp.iosVerify(req, res, next);
- expect(res.json).to.be.calledOnce;
- return expect(res.json).to.be.calledWith(expectedResObj);
- });
- return it('calls payments.buyGems function', function() {
- inApp.iosVerify(req, res, next);
- expect(paymentSpy).to.be.calledOnce;
- return expect(paymentSpy).to.be.calledWith({
- user: res.locals.user,
- paymentMethod: 'IAP AppleStore',
- amount: 5.25
- });
- });
- });
- context('error in setup', function() {
- before(function() {
- return iapMock.setup = function(cb) {
- return cb("error in setup");
- };
- });
- it('calls res.json with setup error object', function() {
- var expectedResObj;
- expectedResObj = {
- ok: false,
- data: 'IAP Error'
- };
- inApp.iosVerify(req, res, next);
- expect(res.json).to.be.calledOnce;
- return expect(res.json).to.be.calledWith(expectedResObj);
- });
- return it('does not calls payments.buyGems function', function() {
- inApp.iosVerify(req, res, next);
- return expect(paymentSpy).to.not.be.called;
- });
- });
- context('error in validation', function() {
- before(function() {
- iapMock.setup = function(cb) {
- return cb(null);
- };
- return iapMock.validate = function(iapApple, iapBodyReciept, cb) {
- return cb('error in validation', true);
- };
- });
- it('calls res.json with validation error object', function() {
- var expectedResObj;
- expectedResObj = {
- ok: false,
- data: {
- code: 6778001,
- message: 'error in validation'
- }
- };
- inApp.iosVerify(req, res, next);
- expect(res.json).to.be.calledOnce;
- return expect(res.json).to.be.calledWith(expectedResObj);
- });
- return it('does not calls payments.buyGems function', function() {
- inApp.iosVerify(req, res, next);
- return expect(paymentSpy).to.not.be.called;
- });
- });
- context('iap is not valid', function() {
- before(function() {
- iapMock.setup = function(cb) {
- return cb(null);
- };
- iapMock.validate = function(iapApple, iapBodyReciept, cb) {
- return cb(null, false);
- };
- return iapMock.isValidated = function(appleRes) {
- return appleRes;
- };
- });
- it('does not call res.json', function() {
- var expectedResObj;
- inApp.iosVerify(req, res, next);
- expectedResObj = {
- ok: false,
- data: {
- code: 6778001,
- message: 'Invalid receipt'
- }
- };
- expect(res.json).to.be.calledOnce;
- return expect(res.json).to.be.calledWith(expectedResObj);
- });
- return it('does not calls payments.buyGems function', function() {
- inApp.iosVerify(req, res, next);
- return expect(paymentSpy).to.not.be.called;
- });
- });
- context('iap is valid but has no purchaseDataList', function() {
- before(function() {
- iapMock.setup = function(cb) {
- return cb(null);
- };
- iapMock.validate = function(iapApple, iapBodyReciept, cb) {
- return cb(null, true);
- };
- iapMock.isValidated = function(appleRes) {
- return appleRes;
- };
- iapMock.getPurchaseData = function(appleRes) {
- return [];
- };
- return iapMock.APPLE = 'apple';
- });
- it('calls res.json with succesful result object', function() {
- var expectedResObj;
- expectedResObj = {
- ok: false,
- data: {
- code: 6778001,
- message: 'Incorrect receipt content'
- }
- };
- inApp.iosVerify(req, res, next);
- expect(res.json).to.be.calledOnce;
- return expect(res.json).to.be.calledWith(expectedResObj);
- });
- return it('does not calls payments.buyGems function', function() {
- inApp.iosVerify(req, res, next);
- return expect(paymentSpy).to.not.be.called;
- });
- });
- return context('iap is valid, has purchaseDataList, but productId does not match', function() {
- before(function() {
- iapMock.setup = function(cb) {
- return cb(null);
- };
- iapMock.validate = function(iapApple, iapBodyReciept, cb) {
- return cb(null, true);
- };
- iapMock.isValidated = function(appleRes) {
- return appleRes;
- };
- iapMock.getPurchaseData = function(appleRes) {
- return [
- {
- productId: 'com.another.company'
- }
- ];
- };
- return iapMock.APPLE = 'apple';
- });
- it('calls res.json with incorrect reciept obj', function() {
- var expectedResObj;
- expectedResObj = {
- ok: false,
- data: {
- code: 6778001,
- message: 'Incorrect receipt content'
- }
- };
- inApp.iosVerify(req, res, next);
- expect(res.json).to.be.calledOnce;
- return expect(res.json).to.be.calledWith(expectedResObj);
- });
- return it('does not calls payments.buyGems function', function() {
- inApp.iosVerify(req, res, next);
- return expect(paymentSpy).to.not.be.called;
- });
- });
- });
-});
diff --git a/test/api-legacy/party.js b/test/api-legacy/party.js
deleted file mode 100644
index 2f98b67bde..0000000000
--- a/test/api-legacy/party.js
+++ /dev/null
@@ -1,372 +0,0 @@
-var Group, app, diff;
-
-diff = require("deep-diff");
-
-Group = require("../../website/server/models/group").model;
-
-app = require("../../website/server/server");
-
-describe("Party", function() {
- return context("Quests", function() {
- var group, notParticipating, participating, party;
- party = void 0;
- group = void 0;
- participating = [];
- notParticipating = [];
- beforeEach(function(done) {
- Group.update({
- _id: "habitrpg"
- }, {
- $set: {
- quest: {
- key: "dilatory",
- active: true,
- progress: {
- hp: shared.content.quests.dilatory.boss.hp,
- rage: 0
- }
- }
- }
- }).exec();
- return async.waterfall([
- function(cb) {
- return registerNewUser(cb, true);
- }, function(user, cb) {
- return request.post(baseURL + "/groups").send({
- name: "TestGroup",
- type: "party"
- }).end(function(err, res) {
- expectCode(res, 200);
- group = res.body;
- expect(group.members.length).to.equal(1);
- expect(group.leader).to.equal(user._id);
- return cb();
- });
- }, function(cb) {
- return request.post(baseURL + '/user/tasks').send({
- type: 'daily',
- text: 'daily one'
- }).end(function(err, res) {
- return cb();
- });
- }, function(cb) {
- return request.post(baseURL + '/user/tasks').send({
- type: 'daily',
- text: 'daily two'
- }).end(function(err, res) {
- return cb();
- });
- }, function(cb) {
- return User.findByIdAndUpdate(user._id, {
- $set: {
- "stats.lvl": 50
- }
- }, {
- "new": true
- }, function(err, _user) {
- return cb(null, _user);
- });
- }, function(_user, cb) {
- var user;
- user = _user;
- return request.post(baseURL + "/user/batch-update").send([
- {
- op: "score",
- params: {
- direction: "up",
- id: user.dailys[0].id
- }
- }, {
- op: "score",
- params: {
- direction: "up",
- id: user.dailys[0].id
- }
- }, {
- op: "update",
- body: {
- "stats.lvl": 50
- }
- }
- ]).end(function(err, res) {
- user = res.body;
- expect(user.party.quest.progress.up).to.be.above(0);
- return async.waterfall([
- function(cb) {
- return registerManyUsers(3, cb);
- }, function(_party, cb) {
- var inviteURL;
- party = _party;
- inviteURL = baseURL + "/groups/" + group._id + "/invite";
- return async.parallel([
- function(cb2) {
- return request.post(inviteURL).send({
- uuids: [party[0]._id]
- }).end(function() {
- return cb2();
- });
- }, function(cb2) {
- return request.post(inviteURL).send({
- uuids: [party[1]._id]
- }).end(function() {
- return cb2();
- });
- }, function(cb2) {
- return request.post(inviteURL).send({
- uuids: [party[2]._id]
- }).end(function(err, res) {
- return cb2();
- });
- }
- ], cb);
- }, function(results, cb) {
- var series;
- series = _.reduce(party, function(m, v, i) {
- m.push(function(cb2) {
- return request.post(baseURL + "/groups/" + group._id + "/join").set("X-API-User", party[i]._id).set("X-API-Key", party[i].apiToken).end(function() {
- return cb2();
- });
- });
- return m;
- }, []);
- return async.series(series, cb);
- }, function(whatever, cb) {
- return Group.findById(group._id, function(err, g) {
- group = g;
- expect(g.members.length).to.equal(4);
- return cb();
- });
- }
- ], function() {
- return async.waterfall([
- function(cb) {
- return request.post(baseURL + "/groups/" + group._id + "/questAccept?key=vice3").end(function(err, res) {
- expectCode(res, 400);
- return User.findByIdAndUpdate(user._id, {
- $set: {
- "items.quests.vice3": 1
- }
- }, {
- "new": true
- }, cb);
- });
- }, function(_user, cb) {
- return request.post(baseURL + "/groups/" + group._id + "/questAccept?key=vice3").end(function(err, res) {
- expectCode(res, 200);
- return Group.findById(group._id, cb);
- });
- }, function(_group, cb) {
- expect(_group.quest.key).to.equal("vice3");
- expect(_group.quest.active).to.equal(false);
- return request.post(baseURL + "/groups/" + group._id + "/questAccept").set("X-API-User", party[0]._id).set("X-API-Key", party[0].apiToken).end(function() {
- return request.post(baseURL + "/groups/" + group._id + "/questAccept").set("X-API-User", party[1]._id).set("X-API-Key", party[1].apiToken).end(function(err, res) {
- return request.post(baseURL + "/groups/" + group._id + "/questReject").set("X-API-User", party[2]._id).set("X-API-Key", party[2].apiToken).end(function(err, res) {
- group = res.body;
- expect(group.quest.active).to.equal(true);
- return cb();
- });
- });
- });
- }
- ], done);
- });
- });
- }
- ]);
- });
- it("Casts a spell", function(done) {
- var mp;
- mp = user.stats.mp;
- return request.get(baseURL + "/members/" + party[0]._id).end(function(err, res) {
- party[0] = res.body;
- return request.post(baseURL + "/user/class/cast/snowball?targetType=user&targetId=" + party[0]._id).end(function(err, res) {
- return request.get(baseURL + "/members/" + party[0]._id).end(function(err, res) {
- var difference, member;
- member = res.body;
- expect(member.achievements.snowball).to.equal(1);
- expect(member.stats.buffs.snowball).to.exist;
- difference = diff(member, party[0]);
- expect(_.size(difference)).to.equal(2);
- return request.put(baseURL + "/user").send({
- "stats.lvl": 5
- }).end(function(err, res) {
- return request.put(baseURL + "/user").send({
- "stats.mp": 100
- }).end(function(err, res) {
- return request.post(baseURL + "/user/class/cast/valorousPresence?targetType=party").end(function(err, res) {
- return request.get(baseURL + "/members/" + member._id).end(function(err, res) {
- expect(res.body.stats.buffs.str).to.be.above(0);
- expect(diff(res.body, member).length).to.equal(1);
- return done();
- });
- });
- });
- });
- });
- });
- });
- });
- it("Doesn't include people who aren't participating", function(done) {
- return request.get(baseURL + "/groups/" + group._id).end(function(err, res) {
- expect(_.size(res.body.quest.members)).to.equal(3);
- return done();
- });
- });
- it("allows quest participants to leave quest", function(done) {
- var leavingMember;
- leavingMember = party[1];
- expect(group.quest.members[leavingMember._id]).to.eql(true);
- return request.post(baseURL + "/groups/" + group._id + "/questLeave").set("X-API-User", leavingMember._id).set("X-API-Key", leavingMember.apiToken).end(function(err, res) {
- expectCode(res, 204);
- return request.get(baseURL + '/groups/party').end(function(err, res) {
- expect(res.body.quest.members[leavingMember._id]).to.not.be.ok;
- return done();
- });
- });
- });
- return xit("Hurts the boss", function(done) {
- return request.post(baseURL + "/user/batch-update").end(function(err, res) {
- var up, user;
- user = res.body;
- up = user.party.quest.progress.up;
- expect(up).to.be.above(0);
- return request.post(baseURL + "/user/batch-update").send([
- {
- op: "score",
- params: {
- direction: "up",
- id: user.dailys[0].id
- }
- }, {
- op: "update",
- body: {
- lastCron: moment().subtract(1, "days")
- }
- }
- ]).end(function(err, res) {
- expect(res.body.party.quest.progress.up).to.be.above(up);
- return request.post(baseURL + "/user/batch-update").end(function() {
- return request.get(baseURL + "/groups/party").end(function(err, res) {
- return async.waterfall([
- function(cb) {
- return async.parallel([
- function(cb2) {
- return Group.findById("habitrpg", {
- quest: 1
- }, function(err, tavern) {
- expect(tavern.quest.progress.hp).to.be.below(shared.content.quests.dilatory.boss.hp);
- expect(tavern.quest.progress.rage).to.be.above(0);
- return cb2();
- });
- }, function(cb2) {
- var _party;
- expect(res.body.quest.progress.hp).to.be.below(shared.content.quests.vice3.boss.hp);
- _party = res.body.members;
- expect(_.find(_party, {
- _id: party[0]._id
- }).stats.hp).to.be.below(50);
- expect(_.find(_party, {
- _id: party[1]._id
- }).stats.hp).to.be.below(50);
- expect(_.find(_party, {
- _id: party[2]._id
- }).stats.hp).to.be(50);
- return cb2();
- }
- ], cb);
- }, function(whatever, cb) {
- return async.waterfall([
- function(cb2) {
- expect(user.items.pets["MantisShrimp-Base"]).to.not.be.ok();
- return Group.update({
- _id: "habitrpg"
- }, {
- $set: {
- "quest.progress.hp": 0
- }
- }, cb2);
- }, function(arg1, arg2, cb2) {
- expect(user.items.gear.owned.weapon_special_2).to.not.be.ok();
- return Group.findByIdAndUpdate(group._id, {
- $set: {
- "quest.progress.hp": 0
- }
- }, {
- "new": true
- }, cb2);
- }
- ], cb);
- }, function(_group, cb) {
- return request.post(baseURL + "/user/batch-update").send([
- {
- op: "score",
- params: {
- direction: "up",
- id: user.dailys[1].id
- }
- }, {
- op: "update",
- body: {
- lastCron: moment().subtract(1, "days")
- }
- }
- ]).end(function() {
- return cb();
- });
- }, function(cb) {
- return request.post(baseURL + "/user/batch-update").end(function(err, res) {
- return cb(null, res.body);
- });
- }, function(_user, cb) {
- return User.findById(_user._id, cb);
- }, function(_user, cb) {
- user = _user;
- return Group.findById(group._id, cb);
- }, function(_group, cb) {
- var cummExp, cummGp;
- cummExp = shared.content.quests.vice3.drop.exp + shared.content.quests.dilatory.drop.exp;
- cummGp = shared.content.quests.vice3.drop.gp + shared.content.quests.dilatory.drop.gp;
- return async.parallel([
- function(cb2) {
- return Group.findById("habitrpg", function(err, tavern) {
- expect(_.isEmpty(tavern.get("quest"))).to.equal(true);
- expect(user.items.pets["MantisShrimp-Base"]).to.equal(5);
- expect(user.items.mounts["MantisShrimp-Base"]).to.equal(true);
- expect(user.items.eggs.Dragon).to.equal(2);
- expect(user.items.hatchingPotions.Shade).to.equal(2);
- return cb2();
- });
- }, function(cb2) {
- expect(_.isEmpty(_group.get("quest"))).to.equal(true);
- expect(user.items.gear.owned.weapon_special_2).to.equal(true);
- expect(user.items.eggs.Dragon).to.equal(2);
- expect(user.items.hatchingPotions.Shade).to.equal(2);
- return async.parallel([
- function(cb3) {
- return User.findById(party[0].id, function(err, mbr) {
- expect(mbr.items.gear.owned.weapon_special_2).to.equal(true);
- return cb3();
- });
- }, function(cb3) {
- return User.findById(party[1].id, function(err, mbr) {
- expect(mbr.items.gear.owned.weapon_special_2).to.equal(true);
- return cb3();
- });
- }, function(cb3) {
- return User.findById(party[2].id, function(err, mbr) {
- expect(mbr.items.gear.owned.weapon_special_2).to.not.be.ok();
- return cb3();
- });
- }
- ], cb2);
- }
- ], cb);
- }
- ], done);
- });
- });
- });
- });
- });
- });
-});
diff --git a/test/api-legacy/pushNotifications.js b/test/api-legacy/pushNotifications.js
deleted file mode 100644
index 7f98ddccfa..0000000000
--- a/test/api-legacy/pushNotifications.js
+++ /dev/null
@@ -1,430 +0,0 @@
-var app, rewire, sinon;
-
-app = require("../../website/server/server");
-
-rewire = require('rewire');
-
-sinon = require('sinon');
-
-describe("Push-Notifications", function() {
- before(function(done) {
- return registerNewUser(done, true);
- });
- return describe("Events that send push notifications", function() {
- var pushSpy;
- pushSpy = {
- sendNotify: sinon.spy()
- };
- afterEach(function(done) {
- pushSpy.sendNotify.reset();
- return done();
- });
- context("Challenges", function() {
- var challengeMock, challenges, userMock;
- challenges = rewire("../../website/server/controllers/api-v2/challenges");
- challenges.__set__('pushNotify', pushSpy);
- challengeMock = {
- findById: function(arg, cb) {
- return cb(null, {
- leader: user._id,
- name: 'challenge-name'
- });
- }
- };
- userMock = {
- findById: function(arg, cb) {
- return cb(null, user);
- }
- };
- challenges.__set__('Challenge', challengeMock);
- challenges.__set__('User', userMock);
- challenges.__set__('closeChal', function() {
- return true;
- });
- beforeEach(function(done) {
- return registerNewUser(function() {
- user.preferences.emailNotifications.wonChallenge = false;
- user.save = function(cb) {
- return cb(null, user);
- };
- return done();
- }, true);
- });
- return it("sends a push notification when you win a challenge", function(done) {
- var req, res;
- req = {
- params: {
- cid: 'challenge-id'
- },
- query: {
- uid: 'user-id'
- }
- };
- res = {
- locals: {
- user: user
- }
- };
- challenges.selectWinner(req, res);
- return setTimeout(function() {
- expect(pushSpy.sendNotify).to.have.been.calledOnce;
- expect(pushSpy.sendNotify).to.have.been.calledWith(user, 'You won a Challenge!', 'challenge-name');
- return done();
- }, 100);
- });
- });
- context("Groups", function() {
- var groups, recipient;
- recipient = null;
- groups = rewire("../../website/server/controllers/api-v2/groups");
- groups.__set__('pushNotify', pushSpy);
- before(function(done) {
- return registerNewUser(function(err, _user) {
- var userMock;
- recipient = _user;
- recipient.invitations.guilds = [];
- recipient.save = function(cb) {
- return cb(null, recipient);
- };
- recipient.preferences.emailNotifications.invitedGuild = false;
- recipient.preferences.emailNotifications.invitedParty = false;
- recipient.preferences.emailNotifications.invitedQuest = false;
- userMock = {
- findById: function(arg, cb) {
- return cb(null, recipient);
- },
- find: function(arg, arg2, cb) {
- return cb(null, [recipient]);
- },
- update: function(arg, arg2) {
- return {
- exec: function() {
- return true;
- }
- };
- }
- };
- groups.__set__('User', userMock);
- return done();
- }, false);
- });
- it("sends a push notification when invited to a guild", function(done) {
- var group, req, res;
- group = {
- _id: 'guild-id',
- name: 'guild-name',
- type: 'guild',
- members: [user._id],
- invites: []
- };
- group.save = function(cb) {
- return cb(null, group);
- };
- req = {
- body: {
- uuids: [recipient._id]
- }
- };
- res = {
- locals: {
- group: group,
- user: user
- },
- json: function() {
- return true;
- }
- };
- groups.invite(req, res);
- return setTimeout(function() {
- expect(pushSpy.sendNotify).to.have.been.calledOnce;
- expect(pushSpy.sendNotify).to.have.been.calledWith(recipient, 'Invited To Guild', group.name);
- return done();
- }, 100);
- });
- it("sends a push notification when invited to a party", function(done) {
- var group, req, res;
- group = {
- _id: 'party-id',
- name: 'party-name',
- type: 'party',
- members: [user._id],
- invites: []
- };
- group.save = function(cb) {
- return cb(null, group);
- };
- req = {
- body: {
- uuids: [recipient._id]
- }
- };
- res = {
- locals: {
- group: group,
- user: user
- },
- json: function() {
- return true;
- }
- };
- groups.invite(req, res);
- return setTimeout(function() {
- expect(pushSpy.sendNotify).to.have.been.calledOnce;
- expect(pushSpy.sendNotify).to.have.been.calledWith(recipient, 'Invited To Party', group.name);
- return done();
- }, 100);
- });
- it("sends a push notification when invited to a quest", function(done) {
- var group, req, res;
- group = {
- _id: 'party-id',
- name: 'party-name',
- type: 'party',
- members: [user._id, recipient._id],
- invites: [],
- quest: {}
- };
- user.items.quests.hedgehog = 5;
- group.save = function(cb) {
- return cb(null, group);
- };
- group.markModified = function() {
- return true;
- };
- req = {
- body: {
- uuids: [recipient._id]
- },
- query: {
- key: 'hedgehog'
- }
- };
- res = {
- locals: {
- group: group,
- user: user
- },
- json: function() {
- return true;
- }
- };
- groups.questAccept(req, res);
- return setTimeout(function() {
- expect(pushSpy.sendNotify).to.have.been.calledOnce;
- expect(pushSpy.sendNotify).to.have.been.calledWith(recipient, 'Quest Invitation', 'Invitation for the Quest The Hedgebeast');
- return done();
- }, 100);
- });
- return it("sends a push notification to participating members when quest starts", function(done) {
- var group, req, res, userMock;
- group = {
- _id: 'party-id',
- name: 'party-name',
- type: 'party',
- members: [user._id, recipient._id],
- invites: []
- };
- group.quest = {
- key: 'hedgehog',
- progress: {
- hp: 100
- },
- members: {}
- };
- group.quest.members[recipient._id] = true;
- group.save = function(cb) {
- return cb(null, group);
- };
- group.markModified = function() {
- return true;
- };
- req = {
- body: {
- uuids: [recipient._id]
- },
- query: {}
- };
- res = {
- locals: {
- group: group,
- user: user
- },
- json: function() {
- return true;
- }
- };
- userMock = {
- findOne: function(arg, arg2, cb) {
- return cb(null, recipient);
- },
- update: function(arg, arg2, cb) {
- if (cb) {
- return cb(null, user);
- } else {
- return {
- exec: function() {
- return true;
- }
- };
- }
- }
- };
- groups.__set__('User', userMock);
- groups.__set__('populateQuery', function(arg, arg2, arg3) {
- return {
- exec: function() {
- return group.members;
- }
- };
- });
- groups.questAccept(req, res);
- return setTimeout(function() {
- expect(pushSpy.sendNotify).to.have.been.calledTwice;
- expect(pushSpy.sendNotify).to.have.been.calledWith(recipient, 'HabitRPG', 'Your Quest has Begun: The Hedgebeast');
- return done();
- }, 100);
- });
- });
- return describe("Gifts", function() {
- var recipient;
- recipient = null;
- before(function(done) {
- return registerNewUser(function(err, _user) {
- recipient = _user;
- recipient.preferences.emailNotifications.giftedGems = false;
- user.balance = 4;
- user.save = function() {
- return true;
- };
- recipient.save = function() {
- return true;
- };
- return done();
- }, false);
- });
- context("sending gems from balance", function() {
- var members;
- members = rewire("../../website/server/controllers/api-v2/members");
- members.sendMessage = function() {
- return true;
- };
- members.__set__('pushNotify', pushSpy);
- members.__set__('fetchMember', function(id) {
- return function(cb) {
- return cb(null, recipient);
- };
- });
- return it("sends a push notification", function(done) {
- var req, res;
- req = {
- params: {
- uuid: "uuid"
- },
- body: {
- type: 'gems',
- gems: {
- amount: 1
- }
- }
- };
- res = {
- locals: {
- user: user
- }
- };
- members.sendGift(req, res);
- return setTimeout(function() {
- expect(pushSpy.sendNotify).to.have.been.calledOnce;
- expect(pushSpy.sendNotify).to.have.been.calledWith(recipient, 'Gifted Gems', '1 Gems - by ' + user.profile.name);
- return done();
- }, 100);
- });
- });
- return describe("Purchases", function() {
- var membersMock, payments;
- payments = rewire("../../website/server/controllers/payments");
- payments.__set__('pushNotify', pushSpy);
- membersMock = {
- sendMessage: function() {
- return true;
- }
- };
- payments.__set__('members', membersMock);
- context("buying gems as a purchased gift", function() {
- it("sends a push notification", function(done) {
- var data;
- data = {
- user: user,
- gift: {
- member: recipient,
- gems: {
- amount: 1
- }
- }
- };
- payments.buyGems(data);
- return setTimeout(function() {
- expect(pushSpy.sendNotify).to.have.been.calledOnce;
- expect(pushSpy.sendNotify).to.have.been.calledWith(recipient, 'Gifted Gems', '1 Gems - by ' + user.profile.name);
- return done();
- }, 100);
- });
- return it("does not send a push notification if buying gems for self", function(done) {
- var data;
- data = {
- user: user,
- gift: {
- member: user,
- gems: {
- amount: 1
- }
- }
- };
- payments.buyGems(data);
- return setTimeout(function() {
- expect(pushSpy.sendNotify).to.not.have.been.called;
- return done();
- }, 100);
- });
- });
- return context("sending a subscription as a purchased gift", function() {
- it("sends a push notification", function(done) {
- var data;
- data = {
- user: user,
- gift: {
- member: recipient,
- subscription: {
- key: 'basic_6mo'
- }
- }
- };
- payments.createSubscription(data);
- return setTimeout(function() {
- expect(pushSpy.sendNotify).to.have.been.calledOnce;
- expect(pushSpy.sendNotify).to.have.been.calledWith(recipient, 'Gifted Subscription', '6 months - by ' + user.profile.name);
- return done();
- }, 100);
- });
- return it("does not send a push notification if buying subscription for self", function(done) {
- var data;
- data = {
- user: user,
- gift: {
- member: user,
- subscription: {
- key: 'basic_6mo'
- }
- }
- };
- payments.createSubscription(data);
- return setTimeout(function() {
- expect(pushSpy.sendNotify).to.not.have.been.called;
- return done();
- }, 100);
- });
- });
- });
- });
- });
-});
diff --git a/test/api-legacy/score.js b/test/api-legacy/score.js
deleted file mode 100644
index af31a4f334..0000000000
--- a/test/api-legacy/score.js
+++ /dev/null
@@ -1,142 +0,0 @@
-require("../../website/server/server");
-
-describe("Score", function() {
- before(function(done) {
- return registerNewUser(done, true);
- });
- context("Todos that did not previously exist", function() {
- it("creates a completed a todo when using up url", function(done) {
- return request.post(baseURL + "/user/tasks/withUp/up").send({
- type: "todo",
- text: "withUp"
- }).end(function(err, res) {
- expectCode(res, 200);
- request.get(baseURL + "/user/tasks/withUp").end(function(err, res) {
- var upTodo;
- upTodo = res.body;
- return expect(upTodo.completed).to.equal(true);
- });
- return done();
- });
- });
- it("creates an uncompleted todo when using down url", function(done) {
- return request.post(baseURL + "/user/tasks/withDown/down").send({
- type: "todo",
- text: "withDown"
- }).end(function(err, res) {
- expectCode(res, 200);
- return request.get(baseURL + "/user/tasks/withDown").end(function(err, res) {
- var downTodo;
- downTodo = res.body;
- expect(downTodo.completed).to.equal(false);
- return done();
- });
- });
- });
- it("creates a completed a todo overriding the complete parameter when using up url", function(done) {
- return request.post(baseURL + "/user/tasks/withUpWithComplete/up").send({
- type: "todo",
- text: "withUpWithComplete",
- completed: false
- }).end(function(err, res) {
- expectCode(res, 200);
- return request.get(baseURL + "/user/tasks/withUpWithComplete").end(function(err, res) {
- var upTodo;
- upTodo = res.body;
- expect(upTodo.completed).to.equal(true);
- return done();
- });
- });
- });
- return it("Creates an uncompleted todo overriding the completed parameter when using down url", function(done) {
- return request.post(baseURL + "/user/tasks/withDownWithUncomplete/down").send({
- type: "todo",
- text: "withDownWithUncomplete",
- completed: true
- }).end(function(err, res) {
- expectCode(res, 200);
- return request.get(baseURL + "/user/tasks/withDownWithUncomplete").end(function(err, res) {
- var downTodo;
- downTodo = res.body;
- expect(downTodo.completed).to.equal(false);
- return done();
- });
- });
- });
- });
- context("Todo that already exists", function() {
- it("It completes a todo when using up url", function(done) {
- return request.post(baseURL + "/user/tasks").send({
- type: "todo",
- text: "Sample Todo"
- }).end(function(err, res) {
- var unCompletedTodo;
- expectCode(res, 200);
- unCompletedTodo = res.body;
- expect(unCompletedTodo.completed).to.equal(false);
- return request.post(baseURL + "/user/tasks/" + unCompletedTodo._id + "/up").end(function(err, res) {
- expectCode(res, 200);
- return request.get(baseURL + "/user/tasks/" + unCompletedTodo._id).end(function(err, res) {
- unCompletedTodo = res.body;
- expect(unCompletedTodo.completed).to.equal(true);
- return done();
- });
- });
- });
- });
- return it("It uncompletes a todo when using down url", function(done) {
- return request.post(baseURL + "/user/tasks").send({
- type: "todo",
- text: "Sample Todo",
- completed: true
- }).end(function(err, res) {
- var completedTodo;
- expectCode(res, 200);
- completedTodo = res.body;
- expect(completedTodo.completed).to.equal(true);
- return request.post(baseURL + "/user/tasks/" + completedTodo._id + "/down").end(function(err, res) {
- expectCode(res, 200);
- return request.get(baseURL + "/user/tasks/" + completedTodo._id).end(function(err, res) {
- completedTodo = res.body;
- expect(completedTodo.completed).to.equal(false);
- return done();
- });
- });
- });
- });
- });
- it("Creates and scores up a habit when using up url", function(done) {
- var upHabit;
- upHabit = void 0;
- return request.post(baseURL + "/user/tasks/habitWithUp/up").send({
- type: "habit",
- text: "testTitle",
- completed: true
- }).end(function(err, res) {
- expectCode(res, 200);
- return request.get(baseURL + "/user/tasks/habitWithUp").end(function(err, res) {
- upHabit = res.body;
- expect(upHabit.value).to.be.at.least(1);
- expect(upHabit.type).to.equal("habit");
- return done();
- });
- });
- });
- return it("Creates and scores down a habit when using down url", function(done) {
- var downHabit;
- downHabit = void 0;
- return request.post(baseURL + "/user/tasks/habitWithDown/down").send({
- type: "habit",
- text: "testTitle",
- completed: true
- }).end(function(err, res) {
- expectCode(res, 200);
- return request.get(baseURL + "/user/tasks/habitWithDown").end(function(err, res) {
- downHabit = res.body;
- expect(downHabit.value).to.have.at.most(-1);
- expect(downHabit.type).to.equal("habit");
- return done();
- });
- });
- });
-});
diff --git a/test/api-legacy/subscriptions.js b/test/api-legacy/subscriptions.js
deleted file mode 100644
index 73b55039df..0000000000
--- a/test/api-legacy/subscriptions.js
+++ /dev/null
@@ -1,50 +0,0 @@
-var app, payments;
-
-payments = require("../../website/server/controllers/payments");
-
-app = require("../../website/server/server");
-
-describe("Subscriptions", function() {
- before(function(done) {
- return registerNewUser(done, true);
- });
- return it("Handles unsubscription", function(done) {
- var cron;
- cron = function() {
- user.lastCron = moment().subtract(1, "d");
- return user.fns.cron();
- };
- expect(user.purchased.plan.customerId).to.not.exist;
- payments.createSubscription({
- user: user,
- customerId: "123",
- paymentMethod: "Stripe",
- sub: {
- key: 'basic_6mo'
- }
- });
- expect(user.purchased.plan.customerId).to.exist;
- shared.wrap(user);
- cron();
- expect(user.purchased.plan.customerId).to.exist;
- payments.cancelSubscription({
- user: user
- });
- cron();
- expect(user.purchased.plan.customerId).to.exist;
- expect(user.purchased.plan.dateTerminated).to.exist;
- user.purchased.plan.dateTerminated = moment().subtract(2, "d");
- cron();
- expect(user.purchased.plan.customerId).to.not.exist;
- payments.createSubscription({
- user: user,
- customerId: "123",
- paymentMethod: "Stripe",
- sub: {
- key: 'basic_6mo'
- }
- });
- expect(user.purchased.plan.dateTerminated).to.not.exist;
- return done();
- });
-});
diff --git a/test/api-legacy/todos.js b/test/api-legacy/todos.js
deleted file mode 100644
index b72ea57223..0000000000
--- a/test/api-legacy/todos.js
+++ /dev/null
@@ -1,87 +0,0 @@
-require("../../website/server/server");
-
-describe("Todos", function() {
- before(function(done) {
- return registerNewUser(done, true);
- });
- beforeEach(function(done) {
- return User.findById(user._id, function(err, _user) {
- var user;
- user = _user;
- shared.wrap(user);
- return done();
- });
- });
- return it("Archives old todos", function(done) {
- var numTasks;
- numTasks = _.size(user.todos);
- return request.post(baseURL + "/user/batch-update?_v=999").send([
- {
- op: "addTask",
- body: {
- type: "todo"
- }
- }, {
- op: "addTask",
- body: {
- type: "todo"
- }
- }, {
- op: "addTask",
- body: {
- type: "todo"
- }
- }
- ]).end(function(err, res) {
- expectCode(res, 200);
- expect(_.size(res.body.todos)).to.equal(numTasks + 3);
- numTasks += 3;
- return request.post(baseURL + "/user/batch-update?_v=998").send([
- {
- op: "score",
- params: {
- direction: "up",
- id: res.body.todos[0].id
- }
- }, {
- op: "score",
- params: {
- direction: "up",
- id: res.body.todos[1].id
- }
- }, {
- op: "score",
- params: {
- direction: "up",
- id: res.body.todos[2].id
- }
- }
- ]).end(function(err, res) {
- expectCode(res, 200);
- expect(_.size(res.body.todos)).to.equal(numTasks);
- return request.post(baseURL + "/user/batch-update?_v=997").send([
- {
- op: "updateTask",
- params: {
- id: res.body.todos[0].id
- },
- body: {
- dateCompleted: moment().subtract(4, "days")
- }
- }, {
- op: "updateTask",
- params: {
- id: res.body.todos[1].id
- },
- body: {
- dateCompleted: moment().subtract(4, "days")
- }
- }
- ]).end(function(err, res) {
- expect(_.size(res.body.todos)).to.equal(numTasks - 2);
- return done();
- });
- });
- });
- });
-});
diff --git a/test/api/v2/challenges/GET-challenges_id.test.js b/test/api/v2/challenges/GET-challenges_id.test.js
deleted file mode 100644
index dab8a71c0a..0000000000
--- a/test/api/v2/challenges/GET-challenges_id.test.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import {
- createAndPopulateGroup,
- generateChallenge,
-} from '../../../helpers/api-integration/v2';
-
-describe('GET /challenges/:id', () => {
- context('Member of a challenge', () => {
- let leader, party, challenge;
-
- before(async () => {
- let {
- group,
- groupLeader,
- } = await createAndPopulateGroup();
-
- party = group;
- leader = groupLeader;
- challenge = await generateChallenge(leader, party, {
- name: 'a created challenge',
- shortName: 'aCreatedChallenge',
- description: 'a description for the challenge',
- });
- });
-
- it('returns the challenge object', async () => {
- let fetchedChallenge = await leader.get(`/challenges/${challenge._id}`);
-
- expect(fetchedChallenge.name).to.eql(challenge.name);
- expect(fetchedChallenge.shortName).to.eql(challenge.shortName);
- expect(fetchedChallenge.description).to.eql(challenge.description);
- expect(fetchedChallenge.members).to.have.a.lengthOf(1);
- });
- });
-});
diff --git a/test/api/v2/groups/GET-groups.test.js b/test/api/v2/groups/GET-groups.test.js
deleted file mode 100644
index d941b2533e..0000000000
--- a/test/api/v2/groups/GET-groups.test.js
+++ /dev/null
@@ -1,100 +0,0 @@
-import {
- generateGroup,
- generateUser,
- resetHabiticaDB,
-} from '../../../helpers/api-integration/v2';
-import {
- TAVERN_ID,
-} from '../../../../website/server/models/group';
-
-describe('GET /groups', () => {
- const NUMBER_OF_PUBLIC_GUILDS = 3;
-
- let user;
- let leader;
-
- before(async () => {
- // Set up a world with a mixture of public and private guilds
- // Invite user to a few of them
- await resetHabiticaDB();
-
- user = await generateUser();
- leader = await generateUser({ balance: 10 });
-
- await generateGroup(leader, {
- name: 'public guild - is member',
- type: 'guild',
- privacy: 'public',
- }, {
- members: [leader._id, user._id],
- });
-
- await generateGroup(leader, {
- name: 'public guild - is not member',
- type: 'guild',
- privacy: 'public',
- });
-
- await generateGroup(leader, {
- name: 'private guild - is member',
- type: 'guild',
- privacy: 'private',
- }, {
- members: [leader._id, user._id],
- });
-
- await generateGroup(leader, {
- name: 'private guild - is not member',
- type: 'guild',
- privacy: 'private',
- });
-
- await generateGroup(leader, {
- name: 'party - is not member',
- type: 'party',
- privacy: 'private',
- });
-
- await user.post('/groups', {
- name: 'party - is member',
- type: 'party',
- privacy: 'private',
- });
- });
-
- context('no query passed in', () => {
- xit('lists all public guilds, the tavern, user\'s party, and any private guilds that user is a part of - TODO query includes duplicates - IE, tavern is included as tavern and part of public guilds. Refactor so this is not the case');
- });
-
- context('tavern passed in as query', () => {
- it('returns only the tavern', async () => {
- await expect(user.get('/groups', null, {type: 'tavern'}))
- .to.eventually.have.a.lengthOf(1)
- .and.to.have.deep.property('[0]')
- .and.to.have.property('_id', TAVERN_ID);
- });
- });
-
- context('party passed in as query', () => {
- it('returns only the user\'s party', async () => {
- await expect(user.get('/groups', null, {type: 'party'}))
- .to.eventually.have.a.lengthOf(1)
- .and.to.have.deep.property('[0]')
- .and.to.have.property('leader', user._id);
- });
- });
-
- context('public passed in as query', () => {
- it('returns all public guilds', async () => {
- await expect(user.get('/groups', null, {type: 'public'}))
- .to.eventually.have.a.lengthOf(NUMBER_OF_PUBLIC_GUILDS);
- });
- });
-
- context('guilds passed in as query', () => {
- it('returns all guilds user is a part of ', async () => {
- await expect(leader.get('/groups', null, {type: 'guilds'}))
- .to.eventually.have.a.lengthOf(4);
- });
- });
-});
diff --git a/test/api/v2/groups/GET-groups_id.test.js b/test/api/v2/groups/GET-groups_id.test.js
deleted file mode 100644
index 1de69da586..0000000000
--- a/test/api/v2/groups/GET-groups_id.test.js
+++ /dev/null
@@ -1,322 +0,0 @@
-import {
- createAndPopulateGroup,
- generateUser,
- translate as t,
-} from '../../../helpers/api-integration/v2';
-import {
- find,
- each,
-} from 'lodash';
-
-describe('GET /groups/:id', () => {
- let typesOfGroups = {};
- typesOfGroups['public guild'] = { type: 'guild', privacy: 'public' };
- typesOfGroups['private guild'] = { type: 'guild', privacy: 'private' };
- typesOfGroups.party = { type: 'party', privacy: 'private' };
-
- each(typesOfGroups, (groupDetails, groupType) => {
- context(`Member of a ${groupType}`, () => {
- let leader, member, createdGroup;
-
- before(async () => {
- let groupData = await createAndPopulateGroup({
- members: 30,
- groupDetails,
- });
-
- leader = groupData.groupLeader;
- member = groupData.members[0];
- createdGroup = groupData.group;
- });
-
- it('returns the group object', async () => {
- let group = await member.get(`/groups/${createdGroup._id}`);
-
- expect(group._id).to.eql(createdGroup._id);
- expect(group.name).to.eql(createdGroup.name);
- expect(group.type).to.eql(createdGroup.type);
- expect(group.privacy).to.eql(createdGroup.privacy);
- });
-
- it('transforms members array to an array of user objects', async () => {
- let group = await member.get(`/groups/${createdGroup._id}`);
- let someMember = group.members[0];
-
- expect(someMember._id).to.exist;
- expect(someMember.profile.name).to.exist;
- expect(someMember.contributor).to.exist;
- expect(someMember.achievements).to.exist;
- expect(someMember.items).to.exist;
- });
-
- it('transforms leader id to leader object', async () => {
- let group = await member.get(`/groups/${createdGroup._id}`);
-
- expect(group.leader._id).to.eql(leader._id);
- expect(group.leader.profile.name).to.eql(leader.profile.name);
- expect(group.leader.items).to.exist;
- expect(group.leader.stats).to.exist;
- expect(group.leader.achievements).to.exist;
- expect(group.leader.contributor).to.exist;
- });
-
- it('includes the user in the members list', async () => {
- let group = await member.get(`/groups/${createdGroup._id}`);
- let userInGroup = find(group.members, '_id', member._id);
-
- expect(userInGroup).to.exist;
- });
- });
- });
-
- context('flagged messages', () => {
- let group;
-
- let chat1 = {
- id: 'chat1',
- text: 'chat 1',
- flags: {},
- };
-
- let chat2 = {
- id: 'chat2',
- text: 'chat 2',
- flags: {},
- flagCount: 0,
- };
-
- let chat3 = {
- id: 'chat3',
- text: 'chat 3',
- flags: {
- 'user-id': true,
- },
- flagCount: 1,
- };
-
- let chat4 = {
- id: 'chat4',
- text: 'chat 4',
- flags: {
- 'user-id': true,
- 'other-user-id': true,
- },
- flagCount: 2,
- };
-
- let chat5 = {
- id: 'chat5',
- text: 'chat 5',
- flags: {
- 'user-id': true,
- 'other-user-id': true,
- 'yet-another-user-id': true,
- },
- flagCount: 3,
- };
-
- beforeEach(async () => {
- let groupData = await createAndPopulateGroup({
- groupDetails: {
- name: 'test guild',
- type: 'guild',
- privacy: 'public',
- chat: [
- chat1,
- chat2,
- chat3,
- chat4,
- chat5,
- ],
- },
- });
-
- group = groupData.group;
- });
-
- context('non-admin', () => {
- let nonAdmin;
-
- beforeEach(async () => {
- nonAdmin = await generateUser();
- });
-
- it('does not include messages with a flag count of 2 or greater', async () => {
- let fetchedGroup = await nonAdmin.get(`/groups/${group._id}`);
-
- expect(fetchedGroup.chat).to.have.lengthOf(3);
- expect(fetchedGroup.chat[0].id).to.eql(chat1.id);
- expect(fetchedGroup.chat[1].id).to.eql(chat2.id);
- expect(fetchedGroup.chat[2].id).to.eql(chat3.id);
- });
-
- it('does not include user ids in flags object', async () => {
- let fetchedGroup = await nonAdmin.get(`/groups/${group._id}`);
- let chatWithOneFlag = fetchedGroup.chat[2];
-
- expect(chatWithOneFlag.id).to.eql(chat3.id);
- expect(chat3.flags).to.eql({ 'user-id': true });
- expect(chatWithOneFlag.flags).to.eql({});
- });
- });
-
- context('admin', () => {
- let admin;
-
- beforeEach(async () => {
- admin = await generateUser({
- 'contributor.admin': true,
- });
- });
-
- it('includes all messages', async () => {
- let fetchedGroup = await admin.get(`/groups/${group._id}`);
-
- expect(fetchedGroup.chat).to.have.lengthOf(5);
- expect(fetchedGroup.chat[0].id).to.eql(chat1.id);
- expect(fetchedGroup.chat[1].id).to.eql(chat2.id);
- expect(fetchedGroup.chat[2].id).to.eql(chat3.id);
- expect(fetchedGroup.chat[3].id).to.eql(chat4.id);
- expect(fetchedGroup.chat[4].id).to.eql(chat5.id);
- });
-
- it('includes user ids in flags object', async () => {
- let fetchedGroup = await admin.get(`/groups/${group._id}`);
- let chatWithOneFlag = fetchedGroup.chat[2];
-
- expect(chatWithOneFlag.id).to.eql(chat3.id);
- expect(chat3.flags).to.eql({ 'user-id': true });
- expect(chatWithOneFlag.flags).to.eql(chat3.flags);
- });
- });
- });
-
- context('Non-member of a public guild', () => {
- let nonMember, createdGroup;
-
- before(async () => {
- let groupData = await createAndPopulateGroup({
- members: 1,
- groupDetails: {
- name: 'test guild',
- type: 'guild',
- privacy: 'public',
- },
- });
-
- createdGroup = groupData.group;
- nonMember = await generateUser();
- });
-
- it('returns the group object for a non-member', async () => {
- let group = await nonMember.get(`/groups/${createdGroup._id}`);
-
- expect(group._id).to.eql(createdGroup._id);
- expect(group.name).to.eql(createdGroup.name);
- expect(group.type).to.eql(createdGroup.type);
- expect(group.privacy).to.eql(createdGroup.privacy);
- });
-
- it('does not include user in members list', async () => {
- let group = await nonMember.get(`/groups/${createdGroup._id}`);
- let userInGroup = find(group.members, '_id', nonMember._id);
-
- expect(userInGroup).to.not.exist;
- });
- });
-
- context('Private Guilds', () => {
- let nonMember, createdGroup;
-
- before(async () => {
- let groupData = await createAndPopulateGroup({
- members: 1,
- groupDetails: {
- name: 'test guild',
- type: 'guild',
- privacy: 'private',
- },
- });
-
- createdGroup = groupData.group;
- nonMember = await generateUser();
- });
-
- it('does not return the group object for a non-member', async () => {
- await expect(nonMember.get(`/groups/${createdGroup._id}`))
- .to.eventually.be.rejected.and.eql({
- code: 404,
- text: t('messageGroupNotFound'),
- });
- });
- });
-
- context('Non-member of a party', () => {
- let nonMember, createdGroup;
-
- before(async () => {
- let groupData = await createAndPopulateGroup({
- members: 1,
- groupDetails: {
- name: 'test party',
- type: 'party',
- privacy: 'private',
- },
- });
-
- createdGroup = groupData.group;
- nonMember = await generateUser();
- });
-
- it('does not return the group object for a non-member', async () => {
- await expect(nonMember.get(`/groups/${createdGroup._id}`))
- .to.eventually.be.rejected.and.eql({
- code: 404,
- text: t('messageGroupNotFound'),
- });
- });
- });
-
- context('Member of a party', () => {
- let member, createdGroup;
-
- before(async () => {
- let groupData = await createAndPopulateGroup({
- members: 1,
- groupDetails: {
- name: 'test party',
- type: 'party',
- privacy: 'private',
- },
- });
-
- createdGroup = groupData.group;
- member = groupData.members[0];
- });
-
- it('returns the user\'s party if an id of "party" is passed in', async () => {
- let group = await member.get('/groups/party');
-
- expect(group._id).to.eql(createdGroup._id);
- expect(group.name).to.eql(createdGroup.name);
- expect(group.type).to.eql(createdGroup.type);
- expect(group.privacy).to.eql(createdGroup.privacy);
- });
- });
-
- context('Non-existent group', () => {
- let user;
-
- beforeEach(async () => {
- user = await generateUser();
- });
-
- it('returns error if group does not exist', async () => {
- await expect(user.get('/groups/group-that-does-not-exist'))
- .to.eventually.be.rejected.and.eql({
- code: 404,
- text: t('messageGroupNotFound'),
- });
- });
- });
-});
diff --git a/test/api/v2/groups/POST-groups.test.js b/test/api/v2/groups/POST-groups.test.js
deleted file mode 100644
index 8da165aaf7..0000000000
--- a/test/api/v2/groups/POST-groups.test.js
+++ /dev/null
@@ -1,144 +0,0 @@
-import {
- generateGroup,
- generateUser,
- translate as t,
-} from '../../../helpers/api-integration/v2';
-
-describe('POST /groups', () => {
- context('All groups', () => {
- let leader;
-
- beforeEach(async () => {
- leader = await generateUser();
- });
-
- xit('returns defaults? (TODO: it\'s possible to create a group without a type. Should the group default to party? Should we require type to be set?', async () => {
- return leader.post('/groups').then((group) => {
- expect(group._id).to.exist;
- expect(group.name).to.eql(`${leader.profile.name}'s group`);
- expect(group.type).to.eql('party');
- expect(group.privacy).to.eql('private');
- });
- });
-
- it('returns a group object', async () => {
- let group = await leader.post('/groups', {
- name: 'Test Group',
- type: 'party',
- leaderOnly: { challenges: true },
- description: 'Test Group Description',
- leaderMessage: 'Test Group Message',
- });
-
- expect(group._id).to.exist;
- expect(group.leader).to.eql(leader._id);
- expect(group.name).to.eql(group.name);
- expect(group.description).to.eql(group.description);
- expect(group.leaderMessage).to.eql(group.leaderMessage);
- expect(group.leaderOnly).to.eql(group.leaderOnly);
- expect(group.memberCount).to.eql(1);
- });
-
- it('returns a populated members array', async () => {
- let party = await leader.post('/groups', {
- type: 'party',
- });
-
- let member = party.members[0];
-
- expect(member._id).to.eql(leader._id);
- expect(member.profile).to.eql(leader.profile);
- expect(member.contributor).to.eql(leader.contributor);
- });
- });
-
- context('Parties', () => {
- let leader;
-
- beforeEach(async () => {
- leader = await generateUser();
- });
-
- it('allows party creation without gems', async () => {
- let party = await leader.post('/groups', {
- type: 'party',
- });
-
- expect(party._id).to.exist;
- });
-
- it('prevents party creation if user is already in party', async () => {
- await generateGroup(leader, {
- name: 'first party that user attempts to create',
- type: 'party',
- });
-
- await expect(leader.post('/groups', { type: 'party' })).to.eventually.be.rejected.and.eql({
- code: 400,
- text: t('messageGroupAlreadyInParty'),
- });
- });
-
- xit('prevents creating a public party. TODO: it is possible to create a public party. Should we send back an error? Automatically switch the privacy to private?', async () => {
- return expect(leader.post('/groups', {
- type: 'party',
- privacy: 'public',
- })).to.eventually.be.rejected.and.eql({
- code: 400,
- text: 'Parties must be private',
- });
- });
- });
-
- context('Guilds', () => {
- let leader;
-
- beforeEach(async () => {
- leader = await generateUser({
- balance: 2,
- });
- });
-
- it('prevents guild creation when user does not have enough gems', async () => {
- let userWithoutGems = await generateUser({
- balance: 0.75,
- });
-
- await expect(userWithoutGems.post('/groups', { type: 'guild' })).to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageInsufficientGems'),
- });
- });
-
- it('can create a public guild', async () => {
- let guild = await leader.post('/groups', {
- type: 'guild',
- privacy: 'public',
- });
-
- expect(guild.leader).to.eql(leader._id);
- });
-
- it('can create a private guild', async () => {
- let privateGuild = await leader.post('/groups', {
- type: 'guild',
- privacy: 'private',
- });
-
- expect(privateGuild.leader).to.eql(leader._id);
- });
-
- it('deducts gems from user and adds them to guild bank', async () => {
- let guild = await leader.post('/groups', {
- type: 'guild',
- privacy: 'private',
- });
-
- expect(guild.balance).to.eql(1);
-
- let updatedUser = await leader.get('/user');
-
- expect(updatedUser.balance).to.eql(1);
- });
- });
-});
diff --git a/test/api/v2/groups/POST-groups_id.test.js b/test/api/v2/groups/POST-groups_id.test.js
deleted file mode 100644
index 9799ecff4e..0000000000
--- a/test/api/v2/groups/POST-groups_id.test.js
+++ /dev/null
@@ -1,67 +0,0 @@
-import {
- generateGroup,
- generateUser,
- translate as t,
-} from '../../../helpers/api-integration/v2';
-
-describe('POST /groups/:id', () => {
- context('user is not the leader of the group', () => {
- let user, otherUser, groupUserDoesNotOwn;
-
- beforeEach(async () => {
- return Promise.all([
- generateUser({ balance: 10 }),
- generateUser({ balance: 10 }),
- ]).then((users) => {
- user = users[0];
- otherUser = users[1];
-
- return generateGroup(otherUser, {
- name: 'Group not Owned By User',
- type: 'guild',
- privacy: 'public',
- members: [user, otherUser],
- });
- }).then((group) => {
- groupUserDoesNotOwn = group;
- });
- });
-
- it('does not allow user to update group', async () => {
- return expect(user.post(`/groups/${groupUserDoesNotOwn._id}`, {
- name: 'Change',
- })).to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageGroupOnlyLeaderCanUpdate'),
- });
- });
- });
-
- context('user is the leader of the group', () => {
- let user, usersGroup;
-
- beforeEach(async () => {
- user = await generateUser({
- balance: 10,
- });
-
- usersGroup = await generateGroup(user, {
- name: 'Original Group Title',
- type: 'guild',
- privacy: 'public',
- });
- });
-
- it('allows user to update group', async () => {
- await user.post(`/groups/${usersGroup._id}`, {
- name: 'New Group Title',
- description: 'New group description',
- });
-
- await usersGroup.sync();
-
- expect(usersGroup.name).to.eql('New Group Title');
- expect(usersGroup.description).to.eql('New group description');
- });
- });
-});
diff --git a/test/api/v2/groups/POST-groups_id_invite.test.js b/test/api/v2/groups/POST-groups_id_invite.test.js
deleted file mode 100644
index ef768dbf7e..0000000000
--- a/test/api/v2/groups/POST-groups_id_invite.test.js
+++ /dev/null
@@ -1,89 +0,0 @@
-import {
- createAndPopulateGroup,
- generateUser,
-} from '../../../helpers/api-integration/v2';
-import { each } from 'lodash';
-
-describe('POST /groups/:id/invite', () => {
- context('user is a member of the group', () => {
- each({
- 'public guild': {type: 'guild', privacy: 'public'},
- 'private guild': {type: 'guild', privacy: 'private'},
- party: {type: 'party', privacy: 'private'},
- }, (groupDetails, groupType) => {
- let group, invitee, inviter;
-
- beforeEach(async () => {
- invitee = await generateUser();
- let groupData = await createAndPopulateGroup({
- groupDetails,
- members: 1,
- });
- group = groupData.group;
- inviter = groupData.members[0];
- });
-
- it(`allows user to send an invitation for a ${groupType}`, async () => {
- await inviter.post(`/groups/${group._id}/invite`, {
- uuids: [invitee._id],
- });
- group = await inviter.get(`/groups/${group._id}`);
- expect(_.find(group.invites, {_id: invitee._id})._id).to.exists;
- });
- });
- });
-
- context('user is a not member of the group', () => {
- each({
- 'public guild': {type: 'guild', privacy: 'public'},
- }, (groupDetails, groupType) => {
- context(`the group is a ${groupType}`, () => {
- let group, invitee, inviter;
-
- beforeEach(async () => {
- invitee = await generateUser();
- inviter = await generateUser();
- let groupData = await createAndPopulateGroup({
- groupDetails,
- });
- group = groupData.group;
- });
-
- it(`allows user to send an invitation for a ${groupType}`, async () => {
- await inviter.post(`/groups/${group._id}/invite`, {
- uuids: [invitee._id],
- });
- group = await inviter.get(`/groups/${group._id}`);
- expect(_.find(group.invites, {_id: invitee._id})._id).to.exists;
- });
- });
- });
-
- each({
- 'private guild': {type: 'guild', privacy: 'private'},
- party: {type: 'party', privacy: 'private'},
- }, (groupDetails, groupType) => {
- context(`the group is a ${groupType}`, () => {
- let group, invitee, inviter;
-
- beforeEach(async () => {
- invitee = await generateUser();
- inviter = await generateUser();
- let groupData = await createAndPopulateGroup({
- groupDetails,
- });
- group = groupData.group;
- });
-
- it(`does not allows user to send an invitation for a ${groupType}`, async () => {
- return expect(inviter.post(`/groups/${group._id}/invite`, {
- uuids: [invitee._id],
- })).to.eventually.be.rejected.and.eql({
- code: 401,
- text: 'Only a member can invite new members!',
- });
- });
- });
- });
- });
-});
diff --git a/test/api/v2/groups/POST-groups_id_join.test.js b/test/api/v2/groups/POST-groups_id_join.test.js
deleted file mode 100644
index cf216354a0..0000000000
--- a/test/api/v2/groups/POST-groups_id_join.test.js
+++ /dev/null
@@ -1,110 +0,0 @@
-import {
- createAndPopulateGroup,
- generateUser,
- translate as t,
-} from '../../../helpers/api-integration/v2';
-import { each } from 'lodash';
-
-describe('POST /groups/:id/join', () => {
- context('user is already a member of the group', () => {
- it('returns an error');
- });
-
- each({
- 'public guild': {type: 'guild', privacy: 'public'},
- 'private guild': {type: 'guild', privacy: 'private'},
- party: {type: 'party', privacy: 'private'},
- }, (groupDetails, groupType) => {
- context(`user has invitation to a ${groupType}`, () => {
- let group, invitee;
-
- beforeEach(async () => {
- let groupData = await createAndPopulateGroup({
- groupDetails,
- invites: 1,
- });
- group = groupData.group;
- invitee = groupData.invitees[0];
- });
-
- it(`allows user to join a ${groupType}`, async () => {
- await invitee.post(`/groups/${group._id}/join`);
-
- group = await invitee.get(`/groups/${group._id}`);
- expect(_.find(group.members, {_id: invitee._id})._id).to.exists;
- });
- });
- });
-
- each({
- 'private guild': {type: 'guild', privacy: 'private'},
- party: {type: 'party', privacy: 'private'},
- }, (groupDetails, groupType) => {
- context(`user does not have an invitation to a ${groupType}`, () => {
- let group, user;
-
- beforeEach(async () => {
- let groupData = await createAndPopulateGroup({
- groupDetails,
- });
- group = groupData.group;
- user = await generateUser();
- });
-
- it(`does not allow user to join a ${groupType}`, async () => {
- await expect(user.post(`/groups/${group._id}/join`)).to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageGroupRequiresInvite'),
- });
- });
- });
- });
-
- context('user does not have an invitation to a public group', () => {
- let group, user;
-
- beforeEach(async () => {
- let groupData = await createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- },
- });
- group = groupData.group;
- user = await generateUser();
- });
-
- it('allows user to join a public guild', async () => {
- await user.post(`/groups/${group._id}/join`);
-
- group = await user.get(`/groups/${group._id}`);
-
- expect(_.find(group.members, {_id: user._id})._id).to.exists;
- });
- });
-
- context('public guild has no leader', () => {
- let user, group;
-
- beforeEach(async () => {
- let groupData = await createAndPopulateGroup({
- groupDetails: {
- name: 'test guild',
- type: 'guild',
- privacy: 'public',
- },
- });
- group = groupData.group;
- await groupData.groupLeader.post(`/groups/${group._id}/leave`);
- user = await generateUser();
- });
-
- it('makes the joining user the leader', async () => {
- await user.post(`/groups/${group._id}/join`);
-
- group = await user.get(`/groups/${group._id}`);
-
- expect(group.leader._id).to.eql(user._id);
- });
- });
-});
diff --git a/test/api/v2/groups/POST-groups_id_leave.test.js b/test/api/v2/groups/POST-groups_id_leave.test.js
deleted file mode 100644
index f6511e941c..0000000000
--- a/test/api/v2/groups/POST-groups_id_leave.test.js
+++ /dev/null
@@ -1,136 +0,0 @@
-import {
- checkExistence,
- createAndPopulateGroup,
-} from '../../../helpers/api-integration/v2';
-
-describe('POST /groups/:id/leave', () => {
- context('user is not member of the group', () => {
- it('returns an error');
- });
-
- context('user is a non-leader member of a guild', () => {
- let user, group;
-
- beforeEach(async () => {
- let groupData = await createAndPopulateGroup({
- members: 3,
- groupDetails: {
- name: 'test guild',
- type: 'guild',
- privacy: 'public',
- },
- });
-
- user = groupData.members[0];
- group = groupData.group;
- });
-
- it('leaves the group', async () => {
- await user.post(`/groups/${group._id}/leave`);
-
- await user.sync();
-
- expect(user.guilds).to.not.include(group._id);
- });
- });
-
- context('user is the last member of a public guild', () => {
- let user, group;
-
- beforeEach(async () => {
- let groupData = await createAndPopulateGroup({
- groupDetails: {
- name: 'test guild',
- type: 'guild',
- privacy: 'public',
- },
- });
-
- user = groupData.groupLeader;
- group = groupData.group;
- });
-
- it('leaves the group accessible', async () => {
- await user.post(`/groups/${group._id}/leave`);
-
- await expect(user.get(`/groups/${group._id}`)).to.eventually.have.property('_id', group._id);
- });
- });
-
- context('user is the last member of a private group', () => {
- let user, group;
-
- beforeEach(async () => {
- let groupData = await createAndPopulateGroup({
- groupDetails: {
- name: 'test guild',
- type: 'guild',
- privacy: 'private',
- },
- });
-
- user = groupData.groupLeader;
- group = groupData.group;
- });
-
- it('group is deleted', async () => {
- await user.post(`/groups/${group._id}/leave`);
-
- await expect(checkExistence('groups', group._id)).to.eventually.eql(false);
- });
- });
-
- context('user is the last member of a private group with pending invites', () => {
- let user, invitee1, invitee2, group;
-
- beforeEach(async () => {
- let groupData = await createAndPopulateGroup({
- invites: 2,
- groupDetails: {
- name: 'test guild',
- type: 'guild',
- privacy: 'private',
- },
- });
-
- user = groupData.groupLeader;
- group = groupData.group;
- invitee1 = groupData.invitees[0];
- invitee2 = groupData.invitees[1];
- });
-
- it('deletes the group invitations from users', async () => {
- await user.post(`/groups/${group._id}/leave`);
-
- await expect(invitee1.get('/user')).to.eventually.have.deep.property('invitations.guilds').and.to.be.empty;
- await expect(invitee2.get('/user')).to.eventually.have.deep.property('invitations.guilds').and.to.be.empty;
- });
- });
-
- context('user is the last member of a party with pending invites', () => {
- let user, invitee1, invitee2, group;
-
- beforeEach(async () => {
- let groupData = await createAndPopulateGroup({
- invites: 2,
- groupDetails: {
- name: 'test guild',
- type: 'party',
- privacy: 'private',
- },
- });
-
- user = groupData.groupLeader;
- group = groupData.group;
- invitee1 = groupData.invitees[0];
- invitee2 = groupData.invitees[1];
- });
-
- it('deletes the group invitations from users', async () => {
- await user.post(`/groups/${group._id}/leave`);
-
- await expect(invitee1.get('/user')).to.eventually.have.deep.property('invitations.party').and.to.be.empty;
- await expect(invitee2.get('/user')).to.eventually.have.deep.property('invitations.party').and.to.be.empty;
- });
- });
-});
diff --git a/test/api/v2/groups/POST-groups_id_removeMember.test.js b/test/api/v2/groups/POST-groups_id_removeMember.test.js
deleted file mode 100644
index ccedd69e9d..0000000000
--- a/test/api/v2/groups/POST-groups_id_removeMember.test.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import {
- createAndPopulateGroup,
- translate as t,
-} from '../../../helpers/api-integration/v2';
-
-describe('POST /groups/:id/removeMember', () => {
- context('user is not member of the group', () => {
- it('returns an error');
- });
-
- context('user is a non-leader member of a guild', () => {
- it('returns an error');
- });
-
- context('user is the leader of a guild', () => {
- let leader, member, group;
-
- beforeEach(async () => {
- return createAndPopulateGroup({
- members: 1,
- groupDetails: {
- name: 'test group',
- type: 'guild',
- privacy: 'public',
- },
- }).then((res) => {
- leader = res.groupLeader;
- member = res.members[0];
- group = res.group;
- });
- });
-
- it('does not allow leader to remove themselves', async () => {
- return expect(leader.post(`/groups/${group._id}/removeMember`, null, {
- uuid: leader._id,
- })).to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageGroupCannotRemoveSelf'),
- });
- });
-
- it('can remove other members of guild', async () => {
- return leader.post(`/groups/${group._id}/removeMember`, null, {
- uuid: member._id,
- }).then(() => {
- return leader.get(`/groups/${group._id}`);
- }).then((guild) => {
- expect(guild.members).to.have.a.lengthOf(1);
- expect(guild.members[0]._id).to.not.eql(member._id);
- });
- });
- });
-});
diff --git a/test/api/v2/groups/chat/DELETE-groups_id_chat.test.js b/test/api/v2/groups/chat/DELETE-groups_id_chat.test.js
deleted file mode 100644
index dc575b0ec6..0000000000
--- a/test/api/v2/groups/chat/DELETE-groups_id_chat.test.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import {
- createAndPopulateGroup,
- translate as t,
-} from '../../../../helpers/api-integration/v2';
-
-describe('DELETE /groups/:id/chat', () => {
- let group, message, user;
-
- beforeEach(async () => {
- return createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- },
- }).then((res) => {
- group = res.group;
- user = res.groupLeader;
-
- return user.post(`/groups/${group._id}/chat`, null, { message: 'Some message' });
- }).then((res) => {
- message = res.message;
- });
- });
-
- it('deletes a message', async () => {
- return user.del(`/groups/${group._id}/chat/${message.id}`).then(() => {
- return user.get(`/groups/${group._id}/chat/`);
- }).then((messages) => {
- expect(messages).to.have.length(0);
- });
- });
-
- it('returns an error is message does not exist', async () => {
- return expect(user.del(`/groups/${group._id}/chat/some-fake-id`)).to.eventually.be.rejected.and.eql({
- code: 404,
- text: t('messageGroupChatNotFound'),
- });
- });
-});
diff --git a/test/api/v2/groups/chat/GET-groups_id_chat.test.js b/test/api/v2/groups/chat/GET-groups_id_chat.test.js
deleted file mode 100644
index d6dc691af7..0000000000
--- a/test/api/v2/groups/chat/GET-groups_id_chat.test.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import {
- createAndPopulateGroup,
-} from '../../../../helpers/api-integration/v2';
-
-describe('GET /groups/:id/chat', () => {
- context('group with multiple messages', () => {
- let group, member, user;
-
- beforeEach(async () => {
- let groupData = await createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- },
- members: 1,
- });
-
- group = groupData.group;
- user = groupData.groupLeader;
- member = groupData.members[0];
-
- await member.post(`/groups/${group._id}/chat`, null, { message: 'Group member message' });
- await user.post(`/groups/${group._id}/chat`, null, { message: 'User message' });
- });
-
- it('gets messages', async () => {
- let messages = await user.get(`/groups/${group._id}/chat`);
-
- expect(messages).to.have.length(2);
-
- let message = messages[0];
-
- expect(message.id).to.exist;
- expect(message.text).to.exist;
- expect(message.uuid).to.exist;
- });
- });
-});
diff --git a/test/api/v2/groups/chat/POST-groups_id_chat.test.js b/test/api/v2/groups/chat/POST-groups_id_chat.test.js
deleted file mode 100644
index cc280077aa..0000000000
--- a/test/api/v2/groups/chat/POST-groups_id_chat.test.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import {
- createAndPopulateGroup,
- translate as t,
-} from '../../../../helpers/api-integration/v2';
-
-describe('POST /groups/:id/chat', () => {
- let group, user;
-
- beforeEach(async () => {
- return createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- },
- }).then((res) => {
- group = res.group;
- user = res.groupLeader;
- });
- });
-
- it('creates a chat message', async () => {
- return user.post(`/groups/${group._id}/chat`, null, {
- message: 'Test Message',
- }).then((res) => {
- let message = res.message;
-
- expect(message.id).to.exist;
- expect(message.timestamp).to.exist;
- expect(message.text).to.eql('Test Message');
- expect(message.uuid).to.eql(user._id);
- });
- });
-
- it('does not post an empty message', async () => {
- return expect(user.post(`/groups/${group._id}/chat`, null, {
- message: '',
- })).to.eventually.be.rejected.and.eql({
- code: 400,
- text: t('messageGroupChatBlankMessage'),
- });
- });
-});
diff --git a/test/api/v2/groups/chat/POST-groups_id_chat_id_clearflags.test.js b/test/api/v2/groups/chat/POST-groups_id_chat_id_clearflags.test.js
deleted file mode 100644
index 0b6a54c429..0000000000
--- a/test/api/v2/groups/chat/POST-groups_id_chat_id_clearflags.test.js
+++ /dev/null
@@ -1,130 +0,0 @@
-import {
- createAndPopulateGroup,
- generateUser,
- translate as t,
-} from '../../../../helpers/api-integration/v2';
-
-describe('POST /groups/:id/chat/:id/clearflags', () => {
- let guild;
-
- beforeEach(async () => {
- let { group } = await createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- members: 1,
- chat: [{
- id: 'message-to-clear',
- flagCount: 1,
- flags: { 'some-id': true },
- }],
- },
- });
-
- guild = group;
- });
-
- context('non admin', () => {
- let nonadmin;
-
- beforeEach(async () => {
- nonadmin = await generateUser();
- });
-
- it('cannot clear flags', async () => {
- return expect(nonadmin.post(`/groups/${guild._id}/chat/message-to-clear/clearflags`))
- .to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageGroupChatAdminClearFlagCount'),
- });
- });
- });
-
- context('admin', () => {
- let admin;
-
- beforeEach(async () => {
- return generateUser({
- 'contributor.admin': true,
- }).then((user) => {
- admin = user;
- });
- });
-
- it('clears flags', async () => {
- return admin.post(`/groups/${guild._id}/chat/message-to-clear/clearflags`).then(() => {
- return admin.get(`/groups/${guild._id}/chat`);
- }).then((messages) => {
- expect(messages[0].flagCount).to.eql(0);
- });
- });
-
- it('leaves old flags on the flag object', async () => {
- return admin.post(`/groups/${guild._id}/chat/message-to-clear/clearflags`).then(() => {
- return admin.get(`/groups/${guild._id}/chat`);
- }).then((messages) => {
- expect(messages[0].flags).to.have.property('some-id', true);
- });
- });
-
- it('returns error if message does not exist', async () => {
- return expect(admin.post(`/groups/${guild._id}/chat/non-existant-message/clearflags`))
- .to.eventually.be.rejected.and.eql({
- code: 404,
- text: t('messageGroupChatNotFound'),
- });
- });
- });
-
- context('admin user, group with multiple messages', () => {
- let admin, author, groupWithMessages;
-
- beforeEach(async () => {
- author = await generateUser();
- admin = await generateUser({
- 'contributor.admin': true,
- });
-
- let groupData = await createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- chat: [
- { id: 'message-to-unflag', uuid: author._id, flagCount: 1, flags: {'some-user': true} },
- { id: '1-flag-message', uuid: author._id, flagCount: 1, flags: { id1: true } },
- { id: '2-flag-message', uuid: author._id, flagCount: 2, flags: { id1: true, id2: true } },
- { id: 'no-flags', uuid: author._id, flagCount: 0, flags: {} },
- ],
- },
- members: 1,
- });
-
- groupWithMessages = groupData.group;
- });
-
- it('changes only the message that is flagged', async () => {
- return admin.post(`/groups/${groupWithMessages._id}/chat/message-to-unflag/clearflags`).then(() => {
- return admin.get(`/groups/${groupWithMessages._id}/chat`);
- }).then((messages) => {
- expect(messages).to.have.lengthOf(4);
-
- let messageThatWasUnflagged = messages[0];
- let messageWith1Flag = messages[1];
- let messageWith2Flag = messages[2];
- let messageWithoutFlags = messages[3];
-
- expect(messageThatWasUnflagged.flagCount).to.eql(0);
- expect(messageThatWasUnflagged.flags).to.have.property('some-user', true);
-
- expect(messageWith1Flag.flagCount).to.eql(1);
- expect(messageWith1Flag.flags).to.have.property('id1', true);
-
- expect(messageWith2Flag.flagCount).to.eql(2);
- expect(messageWith2Flag.flags).to.have.property('id1', true);
-
- expect(messageWithoutFlags.flagCount).to.eql(0);
- expect(messageWithoutFlags.flags).to.eql({});
- });
- });
- });
-});
diff --git a/test/api/v2/groups/chat/POST-groups_id_chat_id_flag.test.js b/test/api/v2/groups/chat/POST-groups_id_chat_id_flag.test.js
deleted file mode 100644
index cd813061b2..0000000000
--- a/test/api/v2/groups/chat/POST-groups_id_chat_id_flag.test.js
+++ /dev/null
@@ -1,186 +0,0 @@
-import {
- createAndPopulateGroup,
- generateUser,
- translate as t,
-} from '../../../../helpers/api-integration/v2';
-
-describe('POST /groups/:id/chat/:id/flag', () => {
- context('another member\'s message', () => {
- let group, member, message, user;
-
- beforeEach(async () => {
- return createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- },
- members: 1,
- }).then((res) => {
- group = res.group;
- user = res.groupLeader;
- member = res.members[0];
-
- return member.post(`/groups/${group._id}/chat`, null, { message: 'Group member message' });
- }).then((res) => {
- message = res.message;
- });
- });
-
- it('flags message', async () => {
- return user.post(`/groups/${group._id}/chat/${message.id}/flag`).then(() => {
- return user.get(`/groups/${group._id}/chat`);
- }).then((messages) => {
- expect(messages[0].flagCount).to.eql(1);
- });
- });
-
- it('cannot flag the same message twice', async () => {
- return expect(user.post(`/groups/${group._id}/chat/${message.id}/flag`).then(() => {
- return user.post(`/groups/${group._id}/chat/${message.id}/flag`);
- })).to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageGroupChatFlagAlreadyReported'),
- });
- });
- });
-
- context('own message', () => {
- let group, message, user;
-
- beforeEach(async () => {
- return createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- members: 1,
- },
- }).then((res) => {
- group = res.group;
- user = res.groupLeader;
-
- return user.post(`/groups/${group._id}/chat`, null, { message: 'User\'s own message' });
- }).then((res) => {
- message = res.message;
- });
- });
-
- it('cannot flag message', async () => {
- return expect(user.post(`/groups/${group._id}/chat/${message.id}/flag`))
- .to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageGroupChatFlagOwnMessage'),
- });
- });
- });
-
- context('nonexistant message', () => {
- let group, user;
-
- beforeEach(async () => {
- return createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- },
- }).then((res) => {
- group = res.group;
- user = res.groupLeader;
- });
- });
-
- it('returns error', async () => {
- return expect(user.post(`/groups/${group._id}/chat/non-existant-message/flag`))
- .to.eventually.be.rejected.and.eql({
- code: 404,
- text: t('messageGroupChatNotFound'),
- });
- });
- });
-
- context('group with multiple messages', () => {
- let admin, author, group, user;
-
- beforeEach(async () => {
- author = await generateUser();
- admin = await generateUser({
- 'contributor.admin': true,
- });
-
- let groupData = await createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- chat: [
- { id: 'message-to-be-flagged', uuid: author._id, flagCount: 0, flags: {} },
- { id: '1-flag-message', uuid: author._id, flagCount: 1, flags: { id1: true } },
- { id: '2-flag-message', uuid: author._id, flagCount: 2, flags: { id1: true, id2: true } },
- { id: 'no-flags', uuid: author._id, flagCount: 0, flags: {} },
- ],
- },
- members: 1,
- });
-
- group = groupData.group;
- user = groupData.groupLeader;
- });
-
- it('changes only the message that is flagged', async () => {
- return user.post(`/groups/${group._id}/chat/message-to-be-flagged/flag`).then(() => {
- return admin.get(`/groups/${group._id}/chat`);
- }).then((messages) => {
- expect(messages).to.have.lengthOf(4);
-
- let messageThatWasFlagged = messages[0];
- let messageWith1Flag = messages[1];
- let messageWith2Flag = messages[2];
- let messageWithoutFlags = messages[3];
-
- expect(messageThatWasFlagged.flagCount).to.eql(1);
- expect(messageThatWasFlagged.flags).to.have.property(user._id, true);
-
- expect(messageWith1Flag.flagCount).to.eql(1);
- expect(messageWith1Flag.flags).to.have.property('id1', true);
-
- expect(messageWith2Flag.flagCount).to.eql(2);
- expect(messageWith2Flag.flags).to.have.property('id1', true);
-
- expect(messageWithoutFlags.flagCount).to.eql(0);
- expect(messageWithoutFlags.flags).to.eql({});
- });
- });
- });
-
- context('admin flagging a message', () => {
- let group, member, message, user;
-
- beforeEach(async () => {
- return createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- },
- leaderDetails: {
- 'contributor.admin': true,
- balance: 10,
- },
- members: 1,
- }).then((res) => {
- group = res.group;
- user = res.groupLeader;
- member = res.members[0];
-
- return member.post(`/groups/${group._id}/chat`, null, { message: 'Group member message' });
- }).then((res) => {
- message = res.message;
- });
- });
-
- it('sets flagCount to 5', async () => {
- return user.post(`/groups/${group._id}/chat/${message.id}/flag`).then(() => {
- return user.get(`/groups/${group._id}/chat`);
- }).then((messages) => {
- expect(messages[0].flagCount).to.eql(5);
- });
- });
- });
-});
diff --git a/test/api/v2/groups/chat/POST-groups_id_chat_id_like.test.js b/test/api/v2/groups/chat/POST-groups_id_chat_id_like.test.js
deleted file mode 100644
index 9c8ff4c586..0000000000
--- a/test/api/v2/groups/chat/POST-groups_id_chat_id_like.test.js
+++ /dev/null
@@ -1,149 +0,0 @@
-import {
- createAndPopulateGroup,
- generateUser,
- translate as t,
-} from '../../../../helpers/api-integration/v2';
-
-describe('POST /groups/:id/chat/:id/like', () => {
- context('another member\'s message', () => {
- let group, member, message, user;
-
- beforeEach(async () => {
- return createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- },
- members: 1,
- }).then((res) => {
- group = res.group;
- user = res.groupLeader;
- member = res.members[0];
-
- return member.post(`/groups/${group._id}/chat`, null, { message: 'Group member message' });
- }).then((res) => {
- message = res.message;
- });
- });
-
- it('likes message', async () => {
- return user.post(`/groups/${group._id}/chat/${message.id}/like`).then((messages) => {
- expect(messages[0].likes[user._id]).to.eql(true);
- });
- });
-
- it('returns the message object', async () => {
- return user.post(`/groups/${group._id}/chat/${message.id}/like`).then((messages) => {
- expect(messages[0].text).to.eql('Group member message');
- expect(messages[0].uuid).to.eql(member._id);
- expect(messages[0].user).to.eql(member.profile.name);
- });
- });
- });
-
- context('own message', () => {
- let group, message, user;
-
- beforeEach(async () => {
- return createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- members: 1,
- },
- }).then((res) => {
- group = res.group;
- user = res.groupLeader;
-
- return user.post(`/groups/${group._id}/chat`, null, { message: 'User\'s own message' });
- }).then((res) => {
- message = res.message;
- });
- });
-
- it('cannot like message', async () => {
- return expect(user.post(`/groups/${group._id}/chat/${message.id}/like`))
- .to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageGroupChatLikeOwnMessage'),
- });
- });
- });
-
- context('group with multiple messages', () => {
- let admin, author, group, user;
-
- beforeEach(async () => {
- author = await generateUser();
- admin = await generateUser({
- 'contributor.admin': true,
- });
-
- let groupData = await createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- chat: [
- { id: 'message-to-be-liked', likes: {}, uuid: author._id, flagCount: 0, flags: {} },
- { id: '1-like-message', likes: { id: true }, uuid: author._id, flagCount: 1, flags: { id1: true } },
- { id: '2-like-message', likes: { id: true, id2: true }, uuid: author._id, flagCount: 2, flags: { id1: true, id2: true } },
- { id: 'no-likes', likes: {}, uuid: author._id, flagCount: 0, flags: {} },
- ],
- },
- members: 1,
- });
-
- group = groupData.group;
- user = groupData.groupLeader;
- });
-
- it('changes only the message that is liked', async () => {
- return user.post(`/groups/${group._id}/chat/message-to-be-liked/like`).then(() => {
- return admin.get(`/groups/${group._id}/chat`);
- }).then((messages) => {
- expect(messages).to.have.lengthOf(4);
-
- let messageThatWasLiked = messages[0];
- let messageWith1Like = messages[1];
- let messageWith2Like = messages[2];
- let messageWithoutLike = messages[3];
-
- expect(messageThatWasLiked.likes).to.have.property(user._id, true);
-
- expect(messageWith1Like.flagCount).to.eql(1);
- expect(messageWith1Like.flags).to.have.property('id1', true);
-
- expect(messageWith2Like.flagCount).to.eql(2);
- expect(messageWith2Like.flags).to.have.property('id1', true);
- expect(messageWith2Like.flags).to.have.property('id2', true);
-
- expect(messageWithoutLike.flagCount).to.eql(0);
- expect(messageWithoutLike.flags).to.eql({});
- });
- });
- });
-
- context('nonexistant message', () => {
- let group, user;
-
- beforeEach(async () => {
- return createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- },
- }).then((res) => {
- group = res.group;
- user = res.groupLeader;
- });
- });
-
- it('returns error', async () => {
- return expect(user.post(`/groups/${group._id}/chat/non-existant-message/like`))
- .to.eventually.be.rejected.and.eql({
- code: 404,
- text: t('messageGroupChatNotFound'),
- });
- });
- });
-});
diff --git a/test/api/v2/members/POST-members_id_gift.test.js b/test/api/v2/members/POST-members_id_gift.test.js
deleted file mode 100644
index d36306a79d..0000000000
--- a/test/api/v2/members/POST-members_id_gift.test.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import {
- generateUser,
-} from '../../../helpers/api-integration/v2';
-
-describe('POST /members/id/gift', () => {
- let userWithBalance, userWithoutBalance;
-
- beforeEach(async () => {
- userWithBalance = await generateUser({ balance: 10 });
- userWithoutBalance = await generateUser({ balance: 0 });
- });
-
- context('send gems from balance', () => {
- it('subtracts gems from sender\'s balance and adds it to recipient\'s balance', async () => {
- await userWithBalance.post(`/members/${userWithoutBalance._id}/gift`, {
- type: 'gems',
- gems: {
- amount: 1,
- },
- });
-
- await Promise.all([
- userWithoutBalance.sync(),
- userWithBalance.sync(),
- ]);
-
- expect(userWithBalance.balance).to.eql(9.75);
- expect(userWithoutBalance.balance).to.eql(0.25);
- });
-
- it('adds a message to sender\'s inbox', async () => {
- expect(userWithBalance.inbox.messages).to.be.empty;
-
- await userWithBalance.post(`/members/${userWithoutBalance._id}/gift`, {
- type: 'gems',
- gems: {
- amount: 1,
- },
- });
-
- await userWithBalance.sync();
-
- expect(userWithBalance.inbox.messages).to.not.be.empty;
- });
-
- it('adds a message to recipients\'s inbox', async () => {
- expect(userWithoutBalance.inbox.messages).to.be.empty;
-
- await userWithBalance.post(`/members/${userWithoutBalance._id}/gift`, {
- type: 'gems',
- gems: {
- amount: 1,
- },
- });
-
- await userWithoutBalance.sync();
-
- expect(userWithoutBalance.inbox.messages).to.not.be.empty;
- });
- });
-});
diff --git a/test/api/v2/members/POST-members_id_message.test.js b/test/api/v2/members/POST-members_id_message.test.js
deleted file mode 100644
index ffbc02266a..0000000000
--- a/test/api/v2/members/POST-members_id_message.test.js
+++ /dev/null
@@ -1,70 +0,0 @@
-import {
- generateUser,
-} from '../../../helpers/api-integration/v2';
-
-describe('POST /members/id/message', () => {
- let sender, recipient;
-
- beforeEach(async () => {
- sender = await generateUser();
- recipient = await generateUser();
- });
-
- it('adds the sent message to sender\'s inbox', async () => {
- expect(sender.inbox.messages).to.be.empty;
-
- await sender.post(`/members/${recipient._id}/message`, {
- message: 'hello frodo',
- });
-
- await sender.sync();
-
- expect(sender.inbox.messages).to.not.be.empty;
-
- let messageKey = Object.keys(sender.inbox.messages)[0];
- let message = sender.inbox.messages[messageKey];
-
- expect(message.text).to.eql('hello frodo');
- });
-
- it('adds a message to recipients\'s inbox', async () => {
- expect(recipient.inbox.messages).to.be.empty;
-
- await sender.post(`/members/${recipient._id}/message`, {
- message: 'hello frodo',
- });
-
- await recipient.sync();
-
- expect(recipient.inbox.messages).to.not.be.empty;
-
- let messageKey = Object.keys(recipient.inbox.messages)[0];
- let message = recipient.inbox.messages[messageKey];
-
- expect(message.text).to.eql('hello frodo');
- });
-
- it('does not increment the sender\'s new messages field', async () => {
- expect(sender.inbox.messages).to.be.empty;
-
- await sender.post(`/members/${recipient._id}/message`, {
- message: 'hello frodo',
- });
-
- await sender.sync();
-
- expect(sender.inbox.newMessages).to.eql(0);
- });
-
- it('increments the recipient\'s new messages field', async () => {
- expect(recipient.inbox.messages).to.be.empty;
-
- await sender.post(`/members/${recipient._id}/message`, {
- message: 'hello frodo',
- });
-
- await recipient.sync();
-
- expect(recipient.inbox.newMessages).to.eql(1);
- });
-});
diff --git a/test/api/v2/register/POST-register.test.js b/test/api/v2/register/POST-register.test.js
deleted file mode 100644
index 48981c55b2..0000000000
--- a/test/api/v2/register/POST-register.test.js
+++ /dev/null
@@ -1,293 +0,0 @@
-import {
- generateUser,
- requester,
- translate as t,
-} from '../../../helpers/api-integration/v2';
-import { v4 as generateRandomUserName } from 'uuid';
-import { each } from 'lodash';
-
-describe('POST /register', () => {
- context('username and email are free', () => {
- it('registers a new user', async () => {
- let api = requester();
- let username = generateRandomUserName();
- let email = `${username}@example.com`;
- let password = 'password';
-
- return api.post('/register', {
- username,
- email,
- password,
- confirmPassword: password,
- }).then((user) => {
- expect(user._id).to.exist;
- expect(user.apiToken).to.exist;
- expect(user.auth.local.username).to.eql(username);
- });
- });
-
- it('requires password and confirmPassword to match', async () => {
- let api = requester();
- let username = generateRandomUserName();
- let email = `${username}@example.com`;
- let password = 'password';
- let confirmPassword = 'not password';
-
- return expect(api.post('/register', {
- username,
- email,
- password,
- confirmPassword,
- })).to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageAuthPasswordMustMatch'),
- });
- });
-
- it('requires a username', async () => {
- let api = requester();
- let email = `${generateRandomUserName()}@example.com`;
- let password = 'password';
- let confirmPassword = 'password';
-
- return expect(api.post('/register', {
- email,
- password,
- confirmPassword,
- })).to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageAuthCredentialsRequired'),
- });
- });
-
- it('requires an email', async () => {
- let api = requester();
- let username = generateRandomUserName();
- let password = 'password';
- let confirmPassword = 'password';
-
- return expect(api.post('/register', {
- username,
- password,
- confirmPassword,
- })).to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageAuthCredentialsRequired'),
- });
- });
-
- it('requires a password', async () => {
- let api = requester();
- let username = generateRandomUserName();
- let email = `${username}@example.com`;
- let confirmPassword = 'password';
-
- return expect(api.post('/register', {
- username,
- email,
- confirmPassword,
- })).to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageAuthCredentialsRequired'),
- });
- });
- });
-
- context('login is already taken', () => {
- let username, email;
- beforeEach(async () => {
- username = generateRandomUserName();
- email = `${username}@example.com`;
- return generateUser({
- 'auth.local.username': username,
- 'auth.local.lowerCaseUsername': username,
- 'auth.local.email': email,
- });
- });
-
- it('rejects if username is already taken', async () => {
- let api = requester();
- let uniqueEmail = `${generateRandomUserName()}@exampe.com`;
- let password = 'password';
-
- return expect(api.post('/register', {
- username,
- email: uniqueEmail,
- password,
- confirmPassword: password,
- })).to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageAuthUsernameTaken'),
- });
- });
-
- it('rejects if email is already taken', async () => {
- let api = requester();
- let uniqueUsername = generateRandomUserName();
- let password = 'password';
-
- return expect(api.post('/register', {
- username: uniqueUsername,
- email,
- password,
- confirmPassword: password,
- })).to.eventually.be.rejected.and.eql({
- code: 401,
- text: t('messageAuthEmailTaken'),
- });
- });
- });
-
- context('successful login via api', () => {
- let api, username, email, password;
-
- beforeEach(async () => {
- api = requester();
- username = generateRandomUserName();
- email = `${username}@example.com`;
- password = 'password';
- });
-
- it('sets all site tour values to -2 (already seen)', async () => {
- return api.post('/register', {
- username,
- email,
- password,
- confirmPassword: password,
- }).then((user) => {
- expect(user.flags.tour).to.not.be.empty;
-
- each(user.flags.tour, (value) => {
- expect(value).to.eql(-2);
- });
- });
- });
-
- it('populates user with default todos, not no other task types', async () => {
- return api.post('/register', {
- username,
- email,
- password,
- confirmPassword: password,
- }).then((user) => {
- expect(user.todos).to.not.be.empty;
- expect(user.dailys).to.be.empty;
- expect(user.habits).to.be.empty;
- expect(user.rewards).to.be.empty;
- });
- });
-
- it('populates user with default tags', async () => {
- return api.post('/register', {
- username,
- email,
- password,
- confirmPassword: password,
- }).then((user) => {
- expect(user.tags).to.not.be.empty;
- });
- });
- });
-
- context('successful login with habitica-web header', () => {
- let api, username, email, password;
-
- beforeEach(async () => {
- api = requester({}, {'x-client': 'habitica-web'});
- username = generateRandomUserName();
- email = `${username}@example.com`;
- password = 'password';
- });
-
- it('sets all common tutorial flags to true', async () => {
- return api.post('/register', {
- username,
- email,
- password,
- confirmPassword: password,
- }).then((user) => {
- expect(user.flags.tour).to.not.be.empty;
-
- each(user.flags.tutorial.common, (value) => {
- expect(value).to.eql(true);
- });
- });
- });
-
- it('populates user with default todos, habits, and rewards', async () => {
- return api.post('/register', {
- username,
- email,
- password,
- confirmPassword: password,
- }).then((user) => {
- expect(user.todos).to.not.be.empty;
- expect(user.dailys).to.be.empty;
- expect(user.habits).to.not.be.empty;
- expect(user.rewards).to.not.be.empty;
- });
- });
-
- it('populates user with default tags', async () => {
- return api.post('/register', {
- username,
- email,
- password,
- confirmPassword: password,
- }).then((user) => {
- expect(user.tags).to.not.be.empty;
- });
- });
- });
-
- context('successful login with habitica-android header', () => {
- let api, username, email, password;
-
- beforeEach(async () => {
- api = requester({}, {'x-client': 'habitica-android'});
- username = generateRandomUserName();
- email = `${username}@example.com`;
- password = 'password';
- });
-
- it('sets all common tutorial flags to true', async () => {
- return api.post('/register', {
- username,
- email,
- password,
- confirmPassword: password,
- }).then((user) => {
- expect(user.flags.tour).to.not.be.empty;
-
- each(user.flags.tutorial.common, (value) => {
- expect(value).to.eql(true);
- });
- });
- });
-
- it('populates user with default todos, habits, and rewards', async () => {
- return api.post('/register', {
- username,
- email,
- password,
- confirmPassword: password,
- }).then((user) => {
- expect(user.todos).to.not.be.empty;
- expect(user.dailys).to.be.empty;
- expect(user.habits).to.not.be.empty;
- expect(user.rewards).to.not.be.empty;
- });
- });
-
- it('populates user with default tags', async () => {
- return api.post('/register', {
- username,
- email,
- password,
- confirmPassword: password,
- }).then((user) => {
- expect(user.tags).to.not.be.empty;
- });
- });
- });
-});
diff --git a/test/api/v2/status/GET-status.test.js b/test/api/v2/status/GET-status.test.js
deleted file mode 100644
index 6aac4346a1..0000000000
--- a/test/api/v2/status/GET-status.test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import {requester} from '../../../helpers/api-integration/v2';
-
-describe('Status', () => {
- it('returns a status of up when server is up', async () => {
- let api = requester();
-
- await expect(api.get('/status')).to.eventually.eql({status: 'up'});
- });
-});
diff --git a/test/api/v2/user/DELETE-user.test.js b/test/api/v2/user/DELETE-user.test.js
deleted file mode 100644
index 8d28a07b78..0000000000
--- a/test/api/v2/user/DELETE-user.test.js
+++ /dev/null
@@ -1,186 +0,0 @@
-import {
- checkExistence,
- createAndPopulateGroup,
- generateGroup,
- generateUser,
-} from '../../../helpers/api-integration/v2';
-import {
- find,
- map,
-} from 'lodash';
-import Bluebird from 'bluebird';
-
-describe('DELETE /user', () => {
- let user;
-
- beforeEach(async () => {
- user = await generateUser();
- });
-
- it('deletes the user', async () => {
- return expect(user.del('/user').then(() => {
- return checkExistence('users', user._id);
- })).to.eventually.eql(false);
- });
-
- it('deletes the user\'s tasks', async () => {
- // gets the user's todos ids
- let ids = user.todos.map(todo => todo._id);
- expect(ids.length).to.be.above(0); // make sure the user has some task to delete
-
- await user.del('/user');
-
- await Bluebird.all(map(ids, id => {
- return expect(checkExistence('tasks', id)).to.eventually.eql(false);
- }));
- });
-
- context('user has active subscription', () => {
- it('does not delete account');
- });
-
- context('last member of a party', () => {
- let party;
-
- beforeEach(async () => {
- return generateGroup(user, {
- type: 'party',
- privacy: 'private',
- }).then((group) => {
- party = group;
- });
- });
-
- it('deletes party when user is the only member', async () => {
- await user.del('/user');
- await expect(checkExistence('groups', party._id)).to.eventually.eql(false);
- });
- });
-
- context('last member of a private guild', () => {
- let guild, lastMember;
-
- beforeEach(async () => {
- let {
- groupLeader,
- group,
- } = await createAndPopulateGroup({
- type: 'guild',
- privacy: 'private',
- });
-
- guild = group;
- lastMember = groupLeader;
- });
-
- it('deletes guild when user is the only member', async () => {
- await lastMember.del('/user');
- await expect(checkExistence('groups', guild._id)).to.eventually.eql(false);
- });
- });
-
- context('groups user is leader of', () => {
- let group, oldLeader, newLeader;
-
- beforeEach(async () => {
- return createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- },
- members: 3,
- }).then((res) => {
- group = res.group;
- newLeader = res.members[0];
- oldLeader = res.groupLeader;
- });
- });
-
- it('chooses new group leader for any group user was the leader of', async () => {
- return oldLeader.del('/user').then(() => {
- return newLeader.get(`/groups/${group._id}`);
- }).then((guild) => {
- expect(guild.leader).to.exist;
- expect(guild.leader._id).to.not.eql(oldLeader._id);
- });
- });
- });
-
- context('groups user is a part of', () => {
- let group1, group2, userToDelete, otherUser;
-
- beforeEach(async () => {
- return generateUser({
- balance: 10,
- }).then((_user) => {
- userToDelete = _user;
-
- return generateGroup(userToDelete, {
- type: 'guild',
- privacy: 'public',
- });
- }).then((newGroup) => {
- group1 = newGroup;
-
- return createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- },
- members: 3,
- });
- }).then((res) => {
- group2 = res.group;
- otherUser = res.members[0];
-
- return userToDelete.post(`/groups/${group2._id}/join`);
- });
- });
-
- it('removes user from all groups user was a part of', async () => {
- return userToDelete.del('/user').then(() => {
- return otherUser.get(`/groups/${group1._id}`);
- }).then((fetchedGroup1) => {
- expect(fetchedGroup1.members).to.be.empty;
-
- return otherUser.get(`/groups/${group2._id}`);
- }).then((fetchedGroup2) => {
- expect(fetchedGroup2.members).to.not.be.empty;
-
- let userInGroup = find(fetchedGroup2.members, (member) => {
- return member._id === userToDelete._id;
- });
-
- expect(userInGroup).to.not.be.ok;
- });
- });
- });
-
- context('pending invitation to group', () => {
- let group, userToDelete, otherUser;
-
- beforeEach(async () => {
- return createAndPopulateGroup({
- groupDetails: {
- type: 'guild',
- privacy: 'public',
- },
- members: 3,
- invites: 2,
- }).then((res) => {
- group = res.group;
- otherUser = res.members[0];
- userToDelete = res.invitees[0];
- });
- });
-
- it('removes invitations from groups', async () => {
- return userToDelete.del('/user').then(() => {
- return otherUser.get(`/groups/${group._id}`);
- }).then((fetchedGroup) => {
- expect(fetchedGroup.invites).to.have.a.lengthOf(1);
- expect(fetchedGroup.invites[0]._id).to.not.eql(userToDelete._id);
- });
- });
- });
-});
diff --git a/test/api/v2/user/GET-user.test.js b/test/api/v2/user/GET-user.test.js
deleted file mode 100644
index c1e22d020a..0000000000
--- a/test/api/v2/user/GET-user.test.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import {
- generateUser,
-} from '../../../helpers/api-integration/v2';
-
-describe('GET /user', () => {
- let user;
-
- before(async () => {
- let usr = await generateUser();
- user = await usr.get('/user');
- });
-
- it('gets the user object', async () => {
- expect(user._id).to.eql(user._id);
- expect(user.auth.local.username).to.eql(user.auth.local.username);
- expect(user.todos).to.eql(user.todos);
- expect(user.items).to.eql(user.items);
- });
-
- it('does not include password information', async () => {
- expect(user.auth.local.hashed_password).to.not.exist;
- expect(user.auth.local.salt).to.not.exist;
- });
-
- it('does not include api token', async () => {
- expect(user.apiToken).to.not.exist;
- });
-});
diff --git a/test/api/v2/user/GET-user_tags.test.js b/test/api/v2/user/GET-user_tags.test.js
deleted file mode 100644
index fd2032dc96..0000000000
--- a/test/api/v2/user/GET-user_tags.test.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import {
- generateUser,
-} from '../../../helpers/api-integration/v2';
-
-describe('GET /user/tags', () => {
- let user;
-
- beforeEach(async () => {
- user = await generateUser();
- });
-
- it('gets the user\'s tags', async () => {
- return expect(user.get('/user/tags'))
- .to.eventually.eql(user.tags);
- });
-});
diff --git a/test/api/v2/user/GET-user_tags_id.test.js b/test/api/v2/user/GET-user_tags_id.test.js
deleted file mode 100644
index 9c774c84b6..0000000000
--- a/test/api/v2/user/GET-user_tags_id.test.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import {
- generateUser,
- translate as t,
-} from '../../../helpers/api-integration/v2';
-
-describe('GET /user/tags/id', () => {
- let user;
-
- beforeEach(async () => {
- user = await generateUser();
- });
-
- it('gets a user\'s tag by id', async () => {
- return expect(user.get(`/user/tags/${user.tags[0].id}`))
- .to.eventually.eql(user.tags[0]);
- });
-
- it('fails for non-existent tags', async () => {
- return expect(user.get('/user/tags/not-an-id'))
- .to.eventually.be.rejected.and.eql({
- code: 404,
- text: t('messageTagNotFound'),
- });
- });
-});
diff --git a/test/api/v2/user/PUT-user.test.js b/test/api/v2/user/PUT-user.test.js
deleted file mode 100644
index e4774528ae..0000000000
--- a/test/api/v2/user/PUT-user.test.js
+++ /dev/null
@@ -1,201 +0,0 @@
-import {
- generateUser,
- translate as t,
-} from '../../../helpers/api-integration/v2';
-
-import { each, get } from 'lodash';
-
-describe('PUT /user', () => {
- let user;
-
- beforeEach(async () => {
- user = await generateUser();
- });
-
- context('Allowed Operations', () => {
- it('updates the user', async () => {
- await user.put('/user', {
- 'profile.name': 'Frodo',
- 'preferences.costume': true,
- 'stats.hp': 14,
- });
-
- await user.sync();
-
- expect(user.profile.name).to.eql('Frodo');
- expect(user.preferences.costume).to.eql(true);
- expect(user.stats.hp).to.eql(14);
- });
- });
-
- context('Top Level Protected Operations', () => {
- let protectedOperations = {
- 'gem balance': {balance: 100},
- auth: {'auth.blocked': true, 'auth.timestamps.created': new Date()},
- contributor: {'contributor.level': 9, 'contributor.admin': true, 'contributor.text': 'some text'},
- backer: {'backer.tier': 10, 'backer.npc': 'Bilbo'},
- subscriptions: {'purchased.plan.extraMonths': 500, 'purchased.plan.consecutive.trinkets': 1000},
- 'customization gem purchases': {'purchased.background.tavern': true, 'purchased.skin.bear': true},
- tasks: {todos: [], habits: [], dailys: [], rewards: []},
- };
-
- each(protectedOperations, (data, testName) => {
- it(`does not allow updating ${testName}`, async () => {
- let errorText = [];
- each(data, (value, operation) => {
- errorText.push(t('messageUserOperationProtected', { operation }));
- });
-
- await expect(user.put('/user', data)).to.eventually.be.rejected.and.eql({
- code: 401,
- text: errorText,
- });
- });
- });
- });
-
- context('Sub-Level Protected Operations', () => {
- let protectedOperations = {
- 'class stat': {'stats.class': 'wizard'},
- };
-
- each(protectedOperations, (data, testName) => {
- it(`does not allow updating ${testName}`, async () => {
- let errorText = [];
- each(data, (value, operation) => {
- errorText.push(t('messageUserOperationProtected', { operation }));
- });
-
- await expect(user.put('/user', data)).to.eventually.be.rejected.and.eql({
- code: 401,
- text: errorText,
- });
- });
- });
- });
-
- context('Default Appearance Preferences', () => {
- let testCases = {
- shirt: 'yellow',
- skin: 'ddc994',
- 'hair.color': 'blond',
- 'hair.bangs': 2,
- 'hair.base': 1,
- 'hair.flower': 4,
- size: 'broad',
- };
-
- each(testCases, (item, type) => {
- const update = {};
- update[`preferences.${type}`] = item;
-
- it(`updates user with ${type} that is a default`, async () => {
- let dbUpdate = {};
- dbUpdate[`purchased.${type}.${item}`] = true;
- await user.update(dbUpdate);
-
- // Sanity checks to make sure user is not already equipped with item
- expect(get(user.preferences, type)).to.not.eql(item);
-
- let updatedUser = await user.put('/user', update);
-
- expect(get(updatedUser.preferences, type)).to.eql(item);
- });
- });
-
- it('returns an error if user tries to update body size with invalid type', async () => {
- await expect(user.put('/user', {
- 'preferences.size': 'round',
- })).to.eventually.be.rejected.and.eql({
- code: 401,
- text: ['Must purchase round to set it on preferences.size'],
- });
- });
-
- it('can set beard to default', async () => {
- await user.update({
- 'purchased.hair.beard': 3,
- 'preferences.hair.beard': 3,
- });
-
- let updatedUser = await user.put('/user', {
- 'preferences.hair.beard': 0,
- });
-
- expect(updatedUser.preferences.hair.beard).to.eql(0);
- });
-
- it('can set mustache to default', async () => {
- await user.update({
- 'purchased.hair.mustache': 2,
- 'preferences.hair.mustache': 2,
- });
-
- let updatedUser = await user.put('/user', {
- 'preferences.hair.mustache': 0,
- });
-
- expect(updatedUser.preferences.hair.mustache).to.eql(0);
- });
- });
-
- context('Purchasable Appearance Preferences', () => {
- let testCases = {
- background: 'volcano',
- shirt: 'convict',
- skin: 'cactus',
- 'hair.base': 7,
- 'hair.beard': 2,
- 'hair.color': 'rainbow',
- 'hair.mustache': 2,
- };
-
- each(testCases, (item, type) => {
- const update = {};
- update[`preferences.${type}`] = item;
-
- it(`returns an error if user tries to update ${type} with ${type} the user does not own`, async () => {
- await expect(user.put('/user', update)).to.eventually.be.rejected.and.eql({
- code: 401,
- text: [`Must purchase ${item} to set it on preferences.${type}`],
- });
- });
-
- it(`updates user with ${type} user does own`, async () => {
- let dbUpdate = {};
- dbUpdate[`purchased.${type}.${item}`] = true;
- await user.update(dbUpdate);
-
- // Sanity check to make sure user is not already equipped with item
- expect(get(user.preferences, type)).to.not.eql(item);
-
- let updatedUser = await user.put('/user', update);
-
- expect(get(updatedUser.preferences, type)).to.eql(item);
- });
- });
- });
-
- context('Improvement Categories', () => {
- it('sets valid categories', async () => {
- await user.put('/user', {
- 'preferences.improvementCategories': ['work', 'school'],
- });
-
- await user.sync();
-
- expect(user.preferences.improvementCategories).to.eql(['work', 'school']);
- });
-
- it('discards invalid categories', async () => {
- await expect(user.put('/user', {
- 'preferences.improvementCategories': ['work', 'procrastination', 'school'],
- })).to.eventually.be.rejected.and.eql({
- code: 400,
- text: [
- 'Validator failed for path `preferences.improvementCategories` with value `work,procrastination,school`',
- ],
- });
- });
- });
-});
diff --git a/test/api/v2/user/anonymized/GET-user_anonymized.test.js b/test/api/v2/user/anonymized/GET-user_anonymized.test.js
deleted file mode 100644
index 3bfb4d1dcb..0000000000
--- a/test/api/v2/user/anonymized/GET-user_anonymized.test.js
+++ /dev/null
@@ -1,98 +0,0 @@
-import {
- generateUser,
-} from '../../../../helpers/api-integration/v2';
-import { each } from 'lodash';
-
-describe('GET /user/anonymized', () => {
- let user, anonymizedUser;
-
- before(async () => {
- user = await generateUser({
- 'inbox.messages': {
- 'the-message-id': {
- sort: 214,
- user: 'Some user',
- backer: {},
- contributor: {
- text: 'Blacksmith',
- level: 2,
- contributions: 'Made some contributions',
- admin: false,
- },
- uuid: 'some-users-uuid',
- flagCount: 0,
- flags: {},
- likes: {},
- timestamp: 1444154258699.0000000000000000,
- text: 'Lorem ipsum',
- id: 'the-messages-id',
- sent: true,
- },
- },
- });
-
- await user.post('/user/tasks', {
- text: 'some private text',
- notes: 'some private notes',
- checklist: [
- {text: 'a private checklist'},
- {text: 'another private checklist'},
- ],
- type: 'daily',
- });
-
- anonymizedUser = await user.get('/user/anonymized');
- });
-
- it('retains user id', async () => {
- expect(anonymizedUser._id).to.eql(user._id);
- });
-
- it('removes credentials and financial information', async () => {
- expect(anonymizedUser.apiToken).to.not.exist;
- expect(anonymizedUser.auth.local).to.not.exist;
- expect(anonymizedUser.auth.facebook).to.not.exist;
- expect(anonymizedUser.purchased.plan).to.not.exist;
- });
-
- it('removes profile information', async () => {
- expect(anonymizedUser.profile).to.not.exist;
- expect(anonymizedUser.contributor).to.not.exist;
- expect(anonymizedUser.achievements.challenges).to.not.exist;
- });
-
- it('removes social information', async () => {
- expect(anonymizedUser.newMessages).to.not.exist;
- expect(anonymizedUser.invitations).to.not.exist;
- expect(anonymizedUser.items.special.nyeReceived).to.not.exist;
- expect(anonymizedUser.items.special.valentineReceived).to.not.exist;
-
- each(anonymizedUser.inbox.messages, (msg) => {
- expect(msg.text).to.eql('inbox message text');
- });
- });
-
- it('anonymizes task info', async () => {
- each(['habits', 'todos', 'dailys', 'rewards'], (tasks) => {
- each(anonymizedUser[tasks], (task) => {
- expect(task.text).to.eql('task text');
- expect(task.notes).to.eql('task notes');
-
- each(task.checklist, (box) => {
- expect(box.text).to.match(/item\d*/);
- });
- });
- });
- });
-
- it('anonymizes tags', async () => {
- each(anonymizedUser.tags, (tag) => {
- expect(tag.name).to.eql('tag');
- expect(tag.challenge).to.eql('challenge');
- });
- });
-
- it('removes webhooks', async () => {
- expect(anonymizedUser.webhooks).to.not.exist;
- });
-});
diff --git a/test/api/v2/user/batch-update/POST-user_batch-update.test.js b/test/api/v2/user/batch-update/POST-user_batch-update.test.js
deleted file mode 100644
index f64cbc7f7b..0000000000
--- a/test/api/v2/user/batch-update/POST-user_batch-update.test.js
+++ /dev/null
@@ -1,62 +0,0 @@
-import {
- generateUser,
- translate as t,
-} from '../../../../helpers/api-integration/v2';
-
-import { each } from 'lodash';
-
-describe('POST /user/batch-update', () => {
- let user;
-
- beforeEach(async () => {
- user = await generateUser();
- });
-
- context('allowed operations', () => {
- it('makes batch operations', async () => {
- let task = (await user.get('/user/tasks'))[0];
-
- let updatedUser = await user.post('/user/batch-update', [
- {op: 'update', body: {'stats.hp': 30}},
- {op: 'update', body: {'profile.name': 'Samwise'}},
- {op: 'score', params: { direction: 'up', id: task.id }},
- ]);
-
- expect(updatedUser.stats.hp).to.eql(30);
- expect(updatedUser.profile.name).to.eql('Samwise');
-
- let fetchedTask = await user.get(`/user/tasks/${task.id}`);
-
- expect(fetchedTask.value).to.be.greaterThan(task.value);
- });
- });
-
- xcontext('development only operations', () => { // These tests will fail if your NODE_ENV is set to 'development' instead of 'testing'
- let protectedOperations = {
- 'Add Ten Gems': 'addTenGems',
- 'Add Hourglass': 'addHourglass',
- };
-
- each(protectedOperations, (operation, description) => {
- it(`it sends back a 500 error for ${description} operation`, async () => {
- return expect(user.post('/user/batch-update', [
- { op: operation },
- ])).to.eventually.be.rejected.and.eql({
- code: 500,
- text: t('messageUserOperationNotFound', { operation }),
- });
- });
- });
- });
-
- context('unknown operations', () => {
- it('sends back a 500 error', async () => {
- return expect(user.post('/user/batch-update', [
- {op: 'aNotRealOperation'},
- ])).to.eventually.be.rejected.and.eql({
- code: 500,
- text: t('messageUserOperationNotFound', { operation: 'aNotRealOperation' }),
- });
- });
- });
-});
diff --git a/test/api/v2/user/pushDevice/POST-pushDevice.test.js b/test/api/v2/user/pushDevice/POST-pushDevice.test.js
deleted file mode 100644
index c0b5e9be72..0000000000
--- a/test/api/v2/user/pushDevice/POST-pushDevice.test.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import {
- generateUser,
-} from '../../../../helpers/api-integration/v2';
-
-xdescribe('POST /user/pushDevice', () => {
- let user;
-
- beforeEach(async () => {
- user = await generateUser();
- });
-
- it('registers a device id', async () => {
- return user.post('/user/pushDevice', {
- regId: '123123',
- type: 'android',
- }).then((devices) => {
- let device = devices[0];
-
- expect(device._id).to.exist;
- expect(device.regId).to.eql('123123');
- expect(device.type).to.eql('android');
- });
- });
-});
diff --git a/test/api/v2/user/tasks/DELETE-tasks_id.test.js b/test/api/v2/user/tasks/DELETE-tasks_id.test.js
deleted file mode 100644
index 68eb20faef..0000000000
--- a/test/api/v2/user/tasks/DELETE-tasks_id.test.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import {
- generateUser,
- translate as t,
-} from '../../../../helpers/api-integration/v2';
-
-describe('DELETE /user/tasks/:id', () => {
- let user, task;
-
- beforeEach(async () => {
- user = await generateUser();
- task = user.todos[0];
- });
-
- it('deletes a task', async () => {
- await user.del(`/user/tasks/${task.id}`);
-
- await expect(user.get(`/user/tasks/${task.id}`)).to.eventually.be.rejected.and.eql({
- code: 404,
- text: t('messageTaskNotFound'),
- });
- });
-
- it('returns an error if the task does not exist', async () => {
- return expect(user.del('/user/tasks/task-that-does-not-exist'))
- .to.eventually.be.rejected.and.eql({
- code: 404,
- text: t('messageTaskNotFound'),
- });
- });
-
- it('does not delete another user\'s task', async () => {
- return expect(generateUser().then((otherUser) => {
- let otherUsersTask = otherUser.todos[0];
- return user.del(`/user/tasks/${otherUsersTask.id}`);
- })).to.eventually.be.rejected.and.eql({
- code: 404,
- text: 'Task not found.',
- });
- });
-});
diff --git a/test/api/v2/user/tasks/GET-tasks.test.js b/test/api/v2/user/tasks/GET-tasks.test.js
deleted file mode 100644
index 1506f4c2f0..0000000000
--- a/test/api/v2/user/tasks/GET-tasks.test.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import {
- generateUser,
-} from '../../../../helpers/api-integration/v2';
-
-describe('GET /user/tasks/', () => {
- let user;
-
- beforeEach(async () => {
- return generateUser().then((_user) => {
- user = _user;
- });
- });
-
- it('gets all tasks', async () => {
- return user.get('/user/tasks/').then((tasks) => {
- expect(tasks).to.be.an('array');
- expect(tasks.length).to.equal(1);
-
- let task = tasks[0];
- expect(task.id).to.exist;
- expect(task.type).to.exist;
- expect(task.text).to.exist;
- });
- });
-});
diff --git a/test/api/v2/user/tasks/GET-tasks_id.test.js b/test/api/v2/user/tasks/GET-tasks_id.test.js
deleted file mode 100644
index cd9e1e73be..0000000000
--- a/test/api/v2/user/tasks/GET-tasks_id.test.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import {
- generateUser,
- translate as t,
-} from '../../../../helpers/api-integration/v2';
-
-describe('GET /user/tasks/:id', () => {
- let user, task;
-
- beforeEach(async () => {
- user = await generateUser();
- task = user.todos[0];
- });
-
- it('gets a task', async () => {
- return user.get(`/user/tasks/${task.id}`).then((foundTask) => {
- expect(foundTask.id).to.eql(task.id);
- expect(foundTask.text).to.eql(task.text);
- expect(foundTask.notes).to.eql(task.notes);
- expect(foundTask.value).to.eql(task.value);
- expect(foundTask.type).to.eql(task.type);
- });
- });
-
- it('returns an error if the task does not exist', async () => {
- return expect(user.get('/user/tasks/task-that-does-not-exist'))
- .to.eventually.be.rejected.and.eql({
- code: 404,
- text: t('messageTaskNotFound'),
- });
- });
-
- it('does not get another user\'s task', async () => {
- return expect(generateUser().then((otherUser) => {
- let otherUsersTask = otherUser.todos[0];
-
- return user.get(`/user/tasks/${otherUsersTask.id}`);
- })).to.eventually.be.rejected.and.eql({
- code: 404,
- text: t('messageTaskNotFound'),
- });
- });
-});
diff --git a/test/api/v2/user/tasks/POST-clear-completed.test.js b/test/api/v2/user/tasks/POST-clear-completed.test.js
deleted file mode 100644
index 40e6cbd5cf..0000000000
--- a/test/api/v2/user/tasks/POST-clear-completed.test.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import {
- generateUser,
-} from '../../../../helpers/api-integration/v2';
-
-describe('POST /user/tasks/clear-completed', () => {
- let user;
-
- beforeEach(async () => {
- return generateUser().then((_user) => {
- user = _user;
- });
- });
-
- it('removes all completed todos', async () => {
- let toComplete = await user.post('/user/tasks', {
- type: 'todo',
- text: 'done',
- });
-
- await user.post(`/user/tasks/${toComplete._id}/up`);
-
- let todos = await user.get('/user/tasks?type=todo');
- let uncomplete = await user.post('/user/tasks/clear-completed');
- expect(todos.length).to.equal(uncomplete.length + 1);
- });
-});
diff --git a/test/api/v2/user/tasks/POST-tasks.test.js b/test/api/v2/user/tasks/POST-tasks.test.js
deleted file mode 100644
index 4fe4c9f5ea..0000000000
--- a/test/api/v2/user/tasks/POST-tasks.test.js
+++ /dev/null
@@ -1,66 +0,0 @@
-import {
- generateUser,
- translate as t,
-} from '../../../../helpers/api-integration/v2';
-
-describe('POST /user/tasks', () => {
- let user;
-
- beforeEach(async () => {
- user = await generateUser();
- });
-
- it('creates a task', async () => {
- return user.post('/user/tasks').then((task) => {
- expect(task.id).to.exist;
- });
- });
-
- it('creates a habit by default', async () => {
- return expect(user.post('/user/tasks'))
- .to.eventually.have.property('type', 'habit');
- });
-
- it('creates a task with specified values', async () => {
- return user.post('/user/tasks', {
- type: 'daily',
- text: 'My task',
- notes: 'My notes',
- frequency: 'daily',
- }).then((task) => {
- expect(task.type).to.eql('daily');
- expect(task.text).to.eql('My task');
- expect(task.notes).to.eql('My notes');
- expect(task.frequency).to.eql('daily');
- });
- });
-
- xit('does not create a task with an id that already exists', async () => {
- let todo = user.todos[0];
-
- return expect(user.post('/user/tasks', {
- id: todo.id,
- })).to.eventually.be.rejected.and.eql({
- code: 409,
- text: t('messageDuplicateTaskID'),
- });
- });
-
- xit('TODO: no error is thrown - throws a 500 validation error if invalid type is posted', async () => {
- return expect(user.post('/user/tasks', {
- type: 'not-valid',
- })).to.eventually.be.rejected.and.eql({
- code: 500,
- text: 'Cannot call method \'indexOf\' of undefined',
- });
- });
-
- xit('TODO: no error is thrown - throws a 500 validation error if invalid data is posted', async () => {
- return expect(user.post('/user/tasks', {
- frequency: 'not-valid',
- })).to.eventually.be.rejected.and.eql({
- code: 500,
- text: 'Task validation failed',
- });
- });
-});
diff --git a/test/api/v2/user/tasks/PUT-tasks_id.test.js b/test/api/v2/user/tasks/PUT-tasks_id.test.js
deleted file mode 100644
index ee41a4fe68..0000000000
--- a/test/api/v2/user/tasks/PUT-tasks_id.test.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import {
- generateUser,
-} from '../../../../helpers/api-integration/v2';
-
-describe('PUT /user/tasks/:id', () => {
- let user, task;
-
- beforeEach(async () => {
- user = await generateUser();
- task = user.todos[0];
- });
-
- it('does not update the id of the task', async () => {
- return user.put(`/user/tasks/${task.id}`, {
- id: 'some-thing',
- }).then((updatedTask) => {
- expect(updatedTask.id).to.eql(task.id);
- expect(updatedTask.id).to.not.eql('some-thing');
- });
- });
-
- it('does not update the type of the task', async () => {
- return user.put(`/user/tasks/${task.id}`, {
- type: 'habit',
- }).then((updatedTask) => {
- expect(updatedTask.type).to.eql(task.type);
- expect(updatedTask.type).to.not.eql('habit');
- });
- });
-
- it('updates text, attribute, priority and notes', async () => {
- return user.put(`/user/tasks/${task.id}`, {
- text: 'new text',
- notes: 'new notes',
- priority: 0.1,
- attribute: 'str',
- }).then((updatedTask) => {
- expect(updatedTask.text).to.eql('new text');
- expect(updatedTask.notes).to.eql('new notes');
- expect(updatedTask.priority).to.eql(0.1);
- expect(updatedTask.attribute).to.eql('str');
- });
- });
-
- it('returns an error if the task does not exist', async () => {
- return expect(user.put('/user/tasks/task-id-that-does-not-exist'))
- .to.eventually.be.rejected.and.eql({
- code: 404,
- text: 'Task not found.',
- });
- });
-
- it('does not update another user\'s task', async () => {
- return expect(generateUser().then((otherUser) => {
- let otherUsersTask = otherUser.todos[0];
- return user.put(`/user/tasks/${otherUsersTask._id}`, {
- name: 'some name',
- });
- })).to.eventually.be.rejected.and.eql({
- code: 404,
- text: 'Task not found.',
- });
- });
-});
diff --git a/test/api/v3/integration/challenges/GET-challenges_challengeId.test.js b/test/api/v3/integration/challenges/GET-challenges_challengeId.test.js
index 33b329300a..4bbbd001ba 100644
--- a/test/api/v3/integration/challenges/GET-challenges_challengeId.test.js
+++ b/test/api/v3/integration/challenges/GET-challenges_challengeId.test.js
@@ -46,7 +46,14 @@ describe('GET /challenges/:challengeId', () => {
id: groupLeader._id,
profile: {name: groupLeader.profile.name},
});
- expect(chal.group).to.eql(_.pick(group, ['_id', 'id', 'name', 'type', 'privacy']));
+ expect(chal.group).to.eql({
+ _id: group._id,
+ id: group.id,
+ name: group.name,
+ type: group.type,
+ privacy: group.privacy,
+ leader: groupLeader.id,
+ });
});
});
@@ -91,7 +98,14 @@ describe('GET /challenges/:challengeId', () => {
id: groupLeader._id,
profile: {name: groupLeader.profile.name},
});
- expect(chal.group).to.eql(_.pick(group, ['_id', 'id', 'name', 'type', 'privacy']));
+ expect(chal.group).to.eql({
+ _id: group._id,
+ id: group.id,
+ name: group.name,
+ type: group.type,
+ privacy: group.privacy,
+ leader: groupLeader.id,
+ });
});
});
@@ -136,7 +150,14 @@ describe('GET /challenges/:challengeId', () => {
id: groupLeader.id,
profile: {name: groupLeader.profile.name},
});
- expect(chal.group).to.eql(_.pick(group, ['_id', 'id', 'name', 'type', 'privacy']));
+ expect(chal.group).to.eql({
+ _id: group._id,
+ id: group.id,
+ name: group.name,
+ type: group.type,
+ privacy: group.privacy,
+ leader: groupLeader.id,
+ });
});
});
});
diff --git a/test/api/v3/integration/challenges/GET-challenges_user.test.js b/test/api/v3/integration/challenges/GET-challenges_user.test.js
index b46367f46f..7379718412 100644
--- a/test/api/v3/integration/challenges/GET-challenges_user.test.js
+++ b/test/api/v3/integration/challenges/GET-challenges_user.test.js
@@ -45,6 +45,7 @@ describe('GET challenges/user', () => {
type: publicGuild.type,
privacy: publicGuild.privacy,
name: publicGuild.name,
+ leader: publicGuild.leader._id,
});
});
@@ -64,6 +65,7 @@ describe('GET challenges/user', () => {
type: publicGuild.type,
privacy: publicGuild.privacy,
name: publicGuild.name,
+ leader: publicGuild.leader._id,
});
let foundChallenge2 = _.find(challenges, { _id: challenge2._id });
expect(foundChallenge2).to.exist;
@@ -78,6 +80,7 @@ describe('GET challenges/user', () => {
type: publicGuild.type,
privacy: publicGuild.privacy,
name: publicGuild.name,
+ leader: publicGuild.leader._id,
});
});
@@ -97,6 +100,7 @@ describe('GET challenges/user', () => {
type: publicGuild.type,
privacy: publicGuild.privacy,
name: publicGuild.name,
+ leader: publicGuild.leader._id,
});
let foundChallenge2 = _.find(challenges, { _id: challenge2._id });
expect(foundChallenge2).to.exist;
@@ -111,6 +115,7 @@ describe('GET challenges/user', () => {
type: publicGuild.type,
privacy: publicGuild.privacy,
name: publicGuild.name,
+ leader: publicGuild.leader._id,
});
});
diff --git a/test/api/v3/integration/emails/GET-email-unsubscribe.test.js b/test/api/v3/integration/emails/GET-email-unsubscribe.test.js
index 1bd3a532fa..cda83e78e3 100644
--- a/test/api/v3/integration/emails/GET-email-unsubscribe.test.js
+++ b/test/api/v3/integration/emails/GET-email-unsubscribe.test.js
@@ -2,7 +2,7 @@ import {
generateUser,
translate as t,
} from '../../../../helpers/api-v3-integration.helper';
-import { encrypt } from '../../../../../website/server/libs/api-v3/encryption';
+import { encrypt } from '../../../../../website/server/libs/encryption';
import { v4 as generateUUID } from 'uuid';
describe('GET /email/unsubscribe', () => {
diff --git a/test/api/v3/integration/groups/GET-groups_groupId_members.test.js b/test/api/v3/integration/groups/GET-groups_groupId_members.test.js
index 5827de782d..b38a0d35c5 100644
--- a/test/api/v3/integration/groups/GET-groups_groupId_members.test.js
+++ b/test/api/v3/integration/groups/GET-groups_groupId_members.test.js
@@ -4,12 +4,21 @@ import {
translate as t,
} from '../../../../helpers/api-v3-integration.helper';
import { v4 as generateUUID } from 'uuid';
+import common from '../../../../../common';
describe('GET /groups/:groupId/members', () => {
let user;
beforeEach(async () => {
- user = await generateUser();
+ user = await generateUser({
+ balance: 10,
+ contributor: {level: 1},
+ backer: {tier: 3},
+ preferences: {
+ costume: false,
+ background: 'volcano',
+ },
+ });
});
it('validates optional req.query.lastId to be an UUID', async () => {
@@ -57,6 +66,30 @@ describe('GET /groups/:groupId/members', () => {
expect(res[0].profile).to.have.all.keys(['name']);
});
+ it('req.query.includeAllPublicFields === true only works with parties', async () => {
+ let group = await generateGroup(user, {type: 'guild', name: generateUUID()});
+ let res = await user.get(`/groups/${group._id}/members?includeAllPublicFields=true`);
+ expect(res[0]).to.have.all.keys(['_id', 'id', 'profile']);
+ expect(res[0].profile).to.have.all.keys(['name']);
+ });
+
+ it('populates all public fields if req.query.includeAllPublicFields === true and it is a party', async () => {
+ await generateGroup(user, {type: 'party', name: generateUUID()});
+ let [memberRes] = await user.get('/groups/party/members?includeAllPublicFields=true');
+
+ expect(memberRes).to.have.all.keys([ // works as: object has all and only these keys
+ '_id', 'id', 'preferences', 'profile', 'stats', 'achievements', 'party',
+ 'backer', 'contributor', 'auth', 'items',
+ ]);
+ expect(Object.keys(memberRes.auth)).to.eql(['timestamps']);
+ expect(Object.keys(memberRes.preferences).sort()).to.eql(['size', 'hair', 'skin', 'shirt',
+ 'chair', 'costume', 'sleep', 'background'].sort());
+
+ expect(memberRes.stats.maxMP).to.exists;
+ expect(memberRes.stats.maxHealth).to.equal(common.maxHealth);
+ expect(memberRes.stats.toNextLevel).to.equal(common.tnl(memberRes.stats.lvl));
+ });
+
it('returns only first 30 members', async () => {
let group = await generateGroup(user, {type: 'party', name: generateUUID()});
diff --git a/test/api/v3/integration/groups/POST-groups_id_removeMember.test.js b/test/api/v3/integration/groups/POST-groups_id_removeMember.test.js
index 9b197766b1..e86a4aadf7 100644
--- a/test/api/v3/integration/groups/POST-groups_id_removeMember.test.js
+++ b/test/api/v3/integration/groups/POST-groups_id_removeMember.test.js
@@ -84,7 +84,7 @@ describe('POST /groups/:groupId/removeMember/:memberId', () => {
context('Party', () => {
let party;
- let partyleader;
+ let partyLeader;
let partyInvitedUser;
let partyMember;
@@ -100,13 +100,13 @@ describe('POST /groups/:groupId/removeMember/:memberId', () => {
});
party = group;
- partyleader = groupLeader;
+ partyLeader = groupLeader;
partyInvitedUser = invitees[0];
partyMember = members[0];
});
it('can remove other members', async () => {
- await partyleader.post(`/groups/${party._id}/removeMember/${partyMember._id}`);
+ await partyLeader.post(`/groups/${party._id}/removeMember/${partyMember._id}`);
let memberRemoved = await partyMember.get('/user');
@@ -115,18 +115,63 @@ describe('POST /groups/:groupId/removeMember/:memberId', () => {
it('updates memberCount', async () => {
let oldMemberCount = party.memberCount;
- await partyleader.post(`/groups/${party._id}/removeMember/${partyMember._id}`);
- await expect(partyleader.get(`/groups/${party._id}`)).to.eventually.have.property('memberCount', oldMemberCount - 1);
+ await partyLeader.post(`/groups/${party._id}/removeMember/${partyMember._id}`);
+ await expect(partyLeader.get(`/groups/${party._id}`)).to.eventually.have.property('memberCount', oldMemberCount - 1);
});
it('can remove other invites', async () => {
expect(partyInvitedUser.invitations.party).to.not.be.empty;
- await partyleader.post(`/groups/${party._id}/removeMember/${partyInvitedUser._id}`);
+ await partyLeader.post(`/groups/${party._id}/removeMember/${partyInvitedUser._id}`);
let invitedUserWithoutInvite = await partyInvitedUser.get('/user');
expect(invitedUserWithoutInvite.invitations.party).to.be.empty;
});
+
+ it('removes user from quest when removing user from party after quest starts', async () => {
+ let petQuest = 'whale';
+ await partyLeader.update({
+ [`items.quests.${petQuest}`]: 1,
+ });
+
+ await partyLeader.post(`/groups/${party._id}/quests/invite/${petQuest}`);
+ await partyMember.post(`/groups/${party._id}/quests/accept`);
+
+ await party.sync();
+
+ expect(party.quest.members[partyLeader._id]).to.be.true;
+ expect(party.quest.members[partyMember._id]).to.be.true;
+
+ await partyLeader.post(`/groups/${party._id}/removeMember/${partyMember._id}`);
+
+ await party.sync();
+
+ expect(party.quest.members[partyLeader._id]).to.be.true;
+ expect(party.quest.members[partyMember._id]).to.not.exist;
+ });
+
+ it('removes user from quest when removing user from party before quest starts', async () => {
+ let petQuest = 'whale';
+ await partyLeader.update({
+ [`items.quests.${petQuest}`]: 1,
+ });
+ await partyInvitedUser.post(`/groups/${party._id}/join`);
+ await partyLeader.post(`/groups/${party._id}/quests/invite/${petQuest}`);
+ await partyMember.post(`/groups/${party._id}/quests/accept`);
+
+ await party.sync();
+
+ expect(party.quest.active).to.be.false;
+ expect(party.quest.members[partyLeader._id]).to.be.true;
+ expect(party.quest.members[partyMember._id]).to.be.true;
+
+ await partyLeader.post(`/groups/${party._id}/removeMember/${partyMember._id}`);
+
+ await party.sync();
+
+ expect(party.quest.members[partyLeader._id]).to.be.true;
+ expect(party.quest.members[partyMember._id]).to.not.exist;
+ });
});
});
diff --git a/test/api/v3/integration/hall/GET-hall_heroes.test.js b/test/api/v3/integration/hall/GET-hall_heroes.test.js
index 745bc7739c..a2b87ff689 100644
--- a/test/api/v3/integration/hall/GET-hall_heroes.test.js
+++ b/test/api/v3/integration/hall/GET-hall_heroes.test.js
@@ -1,9 +1,12 @@
import {
generateUser,
+ resetHabiticaDB,
} from '../../../../helpers/api-v3-integration.helper';
describe('GET /hall/heroes', () => {
it('returns all heroes sorted by -contributor.level and with correct fields', async () => {
+ await resetHabiticaDB();
+
let nonHero = await generateUser();
let hero1 = await generateUser({
contributor: {level: 1},
diff --git a/test/api/v3/integration/members/GET-members_id.test.js b/test/api/v3/integration/members/GET-members_id.test.js
index a802a1e8a7..abb98c54b1 100644
--- a/test/api/v3/integration/members/GET-members_id.test.js
+++ b/test/api/v3/integration/members/GET-members_id.test.js
@@ -3,6 +3,7 @@ import {
translate as t,
} from '../../../../helpers/api-v3-integration.helper';
import { v4 as generateUUID } from 'uuid';
+import common from '../../../../../common';
describe('GET /members/:memberId', () => {
let user;
@@ -36,6 +37,10 @@ describe('GET /members/:memberId', () => {
expect(Object.keys(memberRes.auth)).to.eql(['timestamps']);
expect(Object.keys(memberRes.preferences).sort()).to.eql(['size', 'hair', 'skin', 'shirt',
'chair', 'costume', 'sleep', 'background'].sort());
+
+ expect(memberRes.stats.maxMP).to.exists;
+ expect(memberRes.stats.maxHealth).to.equal(common.maxHealth);
+ expect(memberRes.stats.toNextLevel).to.equal(common.tnl(memberRes.stats.lvl));
});
it('handles non-existing members', async () => {
diff --git a/test/api/v3/integration/quests/POST-groups_groupId_quests_accept.test.js b/test/api/v3/integration/quests/POST-groups_groupId_quests_accept.test.js
index fec6c5b88d..ed57d4250a 100644
--- a/test/api/v3/integration/quests/POST-groups_groupId_quests_accept.test.js
+++ b/test/api/v3/integration/quests/POST-groups_groupId_quests_accept.test.js
@@ -74,6 +74,21 @@ describe('POST /groups/:groupId/quests/accept', () => {
});
});
+ it('clears the invalid invite from the user when the request fails', async () => {
+ await leader.post(`/groups/${questingGroup._id}/quests/invite/${PET_QUEST}`);
+ await partyMembers[0].post(`/groups/${questingGroup._id}/quests/accept`);
+
+ await expect(partyMembers[0].post(`/groups/${questingGroup._id}/quests/accept`))
+ .to.eventually.be.rejected.and.eql({
+ code: 400,
+ error: 'BadRequest',
+ message: t('questAlreadyAccepted'),
+ });
+
+ await partyMembers[0].sync();
+ expect(partyMembers[0].party.quest.RSVPNeeded).to.be.false;
+ });
+
it('does not accept invite for a quest already underway', async () => {
await leader.post(`/groups/${questingGroup._id}/quests/invite/${PET_QUEST}`);
await partyMembers[0].post(`/groups/${questingGroup._id}/quests/accept`);
diff --git a/test/api/v3/integration/quests/POST-groups_groupid_quests_reject.test.js b/test/api/v3/integration/quests/POST-groups_groupid_quests_reject.test.js
index c8db296ad9..8bdb3b7ba7 100644
--- a/test/api/v3/integration/quests/POST-groups_groupid_quests_reject.test.js
+++ b/test/api/v3/integration/quests/POST-groups_groupid_quests_reject.test.js
@@ -83,6 +83,21 @@ describe('POST /groups/:groupId/quests/reject', () => {
});
});
+ it('clears the user rsvp needed if the request fails because the request is invalid', async () => {
+ await leader.post(`/groups/${questingGroup._id}/quests/invite/${PET_QUEST}`);
+ await partyMembers[0].post(`/groups/${questingGroup._id}/quests/reject`);
+
+ await expect(partyMembers[0].post(`/groups/${questingGroup._id}/quests/reject`))
+ .to.eventually.be.rejected.and.eql({
+ code: 400,
+ error: 'BadRequest',
+ message: t('questAlreadyRejected'),
+ });
+
+ await partyMembers[0].sync();
+ expect(partyMembers[0].party.quest.RSVPNeeded).to.be.false;
+ });
+
it('return an error when a user rejects an invite already accepted', async () => {
await leader.post(`/groups/${questingGroup._id}/quests/invite/${PET_QUEST}`);
await partyMembers[0].post(`/groups/${questingGroup._id}/quests/accept`);
diff --git a/test/api/v3/integration/shops/GET-shops_market.test.js b/test/api/v3/integration/shops/GET-shops_market.test.js
new file mode 100644
index 0000000000..02162f0d5c
--- /dev/null
+++ b/test/api/v3/integration/shops/GET-shops_market.test.js
@@ -0,0 +1,28 @@
+import {
+ generateUser,
+ translate as t,
+} from '../../../../helpers/api-integration/v3';
+
+describe('GET /shops/market', () => {
+ let user;
+
+ beforeEach(async () => {
+ user = await generateUser();
+ });
+
+ it('returns a valid shop object', async () => {
+ let shop = await user.get('/shops/market');
+
+ expect(shop.identifier).to.equal('market');
+ expect(shop.text).to.eql(t('market'));
+ expect(shop.notes).to.eql(t('welcomeMarketMobile'));
+ expect(shop.imageName).to.be.a('string');
+ expect(shop.categories).to.be.an('array');
+
+ let categories = shop.categories.map(cat => cat.identifier);
+
+ expect(categories).to.include('eggs');
+ expect(categories).to.include('hatchingPotions');
+ expect(categories).to.include('food');
+ });
+});
diff --git a/test/api/v3/integration/shops/GET-shops_quests.test.js b/test/api/v3/integration/shops/GET-shops_quests.test.js
new file mode 100644
index 0000000000..e4546fb4b5
--- /dev/null
+++ b/test/api/v3/integration/shops/GET-shops_quests.test.js
@@ -0,0 +1,28 @@
+import {
+ generateUser,
+ translate as t,
+} from '../../../../helpers/api-integration/v3';
+
+describe('GET /shops/quests', () => {
+ let user;
+
+ beforeEach(async () => {
+ user = await generateUser();
+ });
+
+ it('returns a valid shop object', async () => {
+ let shop = await user.get('/shops/quests');
+
+ expect(shop.identifier).to.equal('questShop');
+ expect(shop.text).to.eql(t('quests'));
+ expect(shop.notes).to.eql(t('ianTextMobile'));
+ expect(shop.imageName).to.be.a('string');
+ expect(shop.categories).to.be.an('array');
+
+ let categories = shop.categories.map(cat => cat.identifier);
+
+ expect(categories).to.include('unlockable');
+ expect(categories).to.include('gold');
+ expect(categories).to.include('pet');
+ });
+});
diff --git a/test/api/v3/integration/shops/GET-shops_seasonal.test.js b/test/api/v3/integration/shops/GET-shops_seasonal.test.js
new file mode 100644
index 0000000000..722cb35665
--- /dev/null
+++ b/test/api/v3/integration/shops/GET-shops_seasonal.test.js
@@ -0,0 +1,22 @@
+import {
+ generateUser,
+ translate as t,
+} from '../../../../helpers/api-integration/v3';
+
+describe('GET /shops/seasonal', () => {
+ let user;
+
+ beforeEach(async () => {
+ user = await generateUser();
+ });
+
+ it('returns a valid shop object', async () => {
+ let shop = await user.get('/shops/seasonal');
+
+ expect(shop.identifier).to.equal('seasonalShop');
+ expect(shop.text).to.eql(t('seasonalShop'));
+ expect(shop.notes).to.eql(t('seasonalShopClosedText'));
+ expect(shop.imageName).to.be.a('string');
+ expect(shop.categories).to.be.an('array');
+ });
+});
diff --git a/test/api/v3/integration/shops/GET-shops_time_travelers.test.js b/test/api/v3/integration/shops/GET-shops_time_travelers.test.js
new file mode 100644
index 0000000000..5ae901f657
--- /dev/null
+++ b/test/api/v3/integration/shops/GET-shops_time_travelers.test.js
@@ -0,0 +1,98 @@
+import {
+ generateUser,
+ translate as t,
+} from '../../../../helpers/api-integration/v3';
+
+describe('GET /shops/time-travelers', () => {
+ let user;
+
+ beforeEach(async () => {
+ user = await generateUser();
+ });
+
+ it('returns a valid shop object', async () => {
+ let shop = await user.get('/shops/time-travelers');
+
+ expect(shop.identifier).to.equal('timeTravelersShop');
+ expect(shop.text).to.eql(t('timeTravelers'));
+ expect(shop.notes).to.be.a('string');
+ expect(shop.imageName).to.be.a('string');
+ expect(shop.categories).to.be.an('array');
+
+ let categories = shop.categories.map(cat => cat.identifier);
+
+ expect(categories).to.include('pets');
+ expect(categories).to.include('mounts');
+ expect(categories).to.include('201606');
+
+ let mammothPet = shop.categories
+ .find(cat => cat.identifier === 'pets')
+ .items
+ .find(pet => pet.key === 'Mammoth-Base');
+ let mantisShrimp = shop.categories
+ .find(cat => cat.identifier === 'mounts')
+ .items
+ .find(pet => pet.key === 'MantisShrimp-Base');
+
+ expect(mammothPet).to.exist;
+ expect(mantisShrimp).to.exist;
+ });
+
+ it('returns active shop notes and imageName if user has trinkets', async () => {
+ await user.update({
+ 'purchased.plan.consecutive.trinkets': 1,
+ });
+
+ let shop = await user.get('/shops/time-travelers');
+
+ expect(shop.notes).to.eql(t('timeTravelersPopover'));
+ expect(shop.imageName).to.eql('npc_timetravelers_active');
+ });
+
+ it('returns inactive shop notes and imageName if user has trinkets', async () => {
+ let shop = await user.get('/shops/time-travelers');
+
+ expect(shop.notes).to.eql(t('timeTravelersPopoverNoSubMobile'));
+ expect(shop.imageName).to.eql('npc_timetravelers');
+ });
+
+ it('does not return mystery sets that are already owned', async () => {
+ await user.update({
+ 'items.gear.owned': {
+ head_mystery_201606: true, // eslint-disable-line camelcase
+ armor_mystery_201606: true, // eslint-disable-line camelcase
+ },
+ });
+
+ let shop = await user.get('/shops/time-travelers');
+
+ let categories = shop.categories.map(cat => cat.identifier);
+
+ expect(categories).to.not.include('201606');
+ });
+
+ it('does not return pets and mounts that user already owns', async () => {
+ await user.update({
+ 'items.mounts': {
+ 'MantisShrimp-Base': true,
+ },
+ 'items.pets': {
+ 'Mammoth-Base': 5,
+ },
+ });
+
+ let shop = await user.get('/shops/time-travelers');
+
+ let mammothPet = shop.categories
+ .find(cat => cat.identifier === 'pets')
+ .items
+ .find(pet => pet.key === 'Mammoth-Base');
+ let mantisShrimp = shop.categories
+ .find(cat => cat.identifier === 'mounts')
+ .items
+ .find(pet => pet.key === 'MantisShrimp-Base');
+
+ expect(mammothPet).to.not.exist;
+ expect(mantisShrimp).to.not.exist;
+ });
+});
diff --git a/test/api/v3/integration/user/GET-user.test.js b/test/api/v3/integration/user/GET-user.test.js
index f4ed75f03f..f68c5d59e4 100644
--- a/test/api/v3/integration/user/GET-user.test.js
+++ b/test/api/v3/integration/user/GET-user.test.js
@@ -1,6 +1,7 @@
import {
generateUser,
} from '../../../../helpers/api-integration/v3';
+import common from '../../../../../common';
describe('GET /user', () => {
let user;
@@ -9,9 +10,13 @@ describe('GET /user', () => {
user = await generateUser();
});
- it('returns the authenticated user', async () => {
+ it('returns the authenticated user with computed stats', async () => {
let returnedUser = await user.get('/user');
expect(returnedUser._id).to.equal(user._id);
+
+ expect(returnedUser.stats.maxMP).to.exists;
+ expect(returnedUser.stats.maxHealth).to.equal(common.maxHealth);
+ expect(returnedUser.stats.toNextLevel).to.equal(common.tnl(returnedUser.stats.lvl));
});
it('does not return private paths (and apiToken)', async () => {
diff --git a/test/api/v3/integration/user/auth/POST-login-local.test.js b/test/api/v3/integration/user/auth/POST-login-local.test.js
index 571b23c3ea..86a49ff548 100644
--- a/test/api/v3/integration/user/auth/POST-login-local.test.js
+++ b/test/api/v3/integration/user/auth/POST-login-local.test.js
@@ -13,6 +13,7 @@ describe('POST /user/auth/local/login', () => {
api = requester();
user = await generateUser();
});
+
it('success with username', async () => {
let response = await api.post(endpoint, {
username: user.auth.local.username,
@@ -20,6 +21,7 @@ describe('POST /user/auth/local/login', () => {
});
expect(response.apiToken).to.eql(user.apiToken);
});
+
it('success with email', async () => {
let response = await api.post(endpoint, {
username: user.auth.local.email,
@@ -27,6 +29,7 @@ describe('POST /user/auth/local/login', () => {
});
expect(response.apiToken).to.eql(user.apiToken);
});
+
it('user is blocked', async () => {
await user.update({ 'auth.blocked': 1 });
await expect(api.post(endpoint, {
@@ -38,6 +41,7 @@ describe('POST /user/auth/local/login', () => {
message: t('accountSuspended', { userId: user._id }),
});
});
+
it('wrong password', async () => {
await expect(api.post(endpoint, {
username: user.auth.local.username,
@@ -48,6 +52,7 @@ describe('POST /user/auth/local/login', () => {
message: t('invalidLoginCredentialsLong'),
});
});
+
it('missing username', async () => {
await expect(api.post(endpoint, {
password: 'wrong-password',
@@ -57,6 +62,7 @@ describe('POST /user/auth/local/login', () => {
message: t('invalidReqParams'),
});
});
+
it('missing password', async () => {
await expect(api.post(endpoint, {
username: user.auth.local.username,
diff --git a/test/api/v3/integration/user/auth/POST-register_local.test.js b/test/api/v3/integration/user/auth/POST-register_local.test.js
index 63d8f755a5..97d30a5f70 100644
--- a/test/api/v3/integration/user/auth/POST-register_local.test.js
+++ b/test/api/v3/integration/user/auth/POST-register_local.test.js
@@ -6,7 +6,7 @@ import {
} from '../../../../../helpers/api-integration/v3';
import { v4 as generateRandomUserName } from 'uuid';
import { each } from 'lodash';
-import { encrypt } from '../../../../../../website/server/libs/api-v3/encryption';
+import { encrypt } from '../../../../../../website/server/libs/encryption';
describe('POST /user/auth/local/register', () => {
context('username and email are free', () => {
diff --git a/test/api/v3/integration/user/auth/POST-user_auth_social.test.js b/test/api/v3/integration/user/auth/POST-user_auth_social.test.js
new file mode 100644
index 0000000000..4bcd7b09fe
--- /dev/null
+++ b/test/api/v3/integration/user/auth/POST-user_auth_social.test.js
@@ -0,0 +1,59 @@
+import {
+ generateUser,
+ requester,
+ translate as t,
+} from '../../../../../helpers/api-integration/v3';
+import passport from 'passport';
+
+describe('POST /user/auth/social', () => {
+ let api;
+ let user;
+ let endpoint = '/user/auth/social';
+ let randomAccessToken = '123456';
+ let facebookId = 'facebookId';
+ let network = 'facebook';
+
+ before(async () => {
+ api = requester();
+ user = await generateUser();
+
+ let expectedResult = {id: facebookId};
+ let passportFacebookProfile = sinon.stub(passport._strategies.facebook, 'userProfile');
+ passportFacebookProfile.yields(null, expectedResult);
+ });
+
+ it('fails if network is not facebook', async () => {
+ await expect(api.post(endpoint, {
+ authResponse: {access_token: randomAccessToken}, // eslint-disable-line camelcase
+ network: 'NotFacebook',
+ })).to.eventually.be.rejected.and.eql({
+ code: 401,
+ error: 'NotAuthorized',
+ message: t('onlyFbSupported'),
+ });
+ });
+
+ it('registers a new user', async () => {
+ let response = await api.post(endpoint, {
+ authResponse: {access_token: randomAccessToken}, // eslint-disable-line camelcase
+ network,
+ });
+
+ expect(response.apiToken).to.exist;
+ expect(response.id).to.exist;
+ expect(response.newUser).to.be.true;
+ });
+
+ it('logs an existing user in', async () => {
+ await user.update({ 'auth.facebook.id': facebookId });
+
+ let response = await api.post(endpoint, {
+ authResponse: {access_token: randomAccessToken}, // eslint-disable-line camelcase
+ network,
+ });
+
+ expect(response.apiToken).to.eql(user.apiToken);
+ expect(response.id).to.eql(user._id);
+ expect(response.newUser).to.be.false;
+ });
+});
diff --git a/test/api/v3/unit/libs/analyticsService.test.js b/test/api/v3/unit/libs/analyticsService.test.js
index 553dfb676c..4e9e491fca 100644
--- a/test/api/v3/unit/libs/analyticsService.test.js
+++ b/test/api/v3/unit/libs/analyticsService.test.js
@@ -1,7 +1,7 @@
// TODO These tests are pretty brittle
// rewrite them to not depend on nock
// Trust that the amplitude module works as intended and sends the requests
-import analyticsService from '../../../../../website/server/libs/api-v3/analyticsService';
+import analyticsService from '../../../../../website/server/libs/analyticsService';
import nock from 'nock';
diff --git a/test/api/v3/unit/libs/baseModel.test.js b/test/api/v3/unit/libs/baseModel.test.js
index 39bf7df047..676366d42f 100644
--- a/test/api/v3/unit/libs/baseModel.test.js
+++ b/test/api/v3/unit/libs/baseModel.test.js
@@ -1,4 +1,4 @@
-import baseModel from '../../../../../website/server/libs/api-v3/baseModel';
+import baseModel from '../../../../../website/server/libs/baseModel';
import mongoose from 'mongoose';
describe('Base model plugin', () => {
diff --git a/test/api/v3/unit/libs/buildManifest.test.js b/test/api/v3/unit/libs/buildManifest.test.js
index c1213fd140..72cffec6c5 100644
--- a/test/api/v3/unit/libs/buildManifest.test.js
+++ b/test/api/v3/unit/libs/buildManifest.test.js
@@ -1,6 +1,6 @@
import {
getManifestFiles,
-} from '../../../../../website/server/libs/api-v3/buildManifest';
+} from '../../../../../website/server/libs/buildManifest';
describe('Build Manifest', () => {
describe('getManifestFiles', () => {
diff --git a/test/api/v3/unit/libs/collectionManipulators.test.js b/test/api/v3/unit/libs/collectionManipulators.test.js
index da44fd5319..a2bc6e71c4 100644
--- a/test/api/v3/unit/libs/collectionManipulators.test.js
+++ b/test/api/v3/unit/libs/collectionManipulators.test.js
@@ -1,7 +1,7 @@
import mongoose from 'mongoose';
import {
removeFromArray,
-} from '../../../../../website/server/libs/api-v3/collectionManipulators';
+} from '../../../../../website/server/libs/collectionManipulators';
describe('Collection Manipulators', () => {
describe('removeFromArray', () => {
diff --git a/test/api/v3/unit/libs/cron.test.js b/test/api/v3/unit/libs/cron.test.js
index 7141837f24..b6ed5b6c39 100644
--- a/test/api/v3/unit/libs/cron.test.js
+++ b/test/api/v3/unit/libs/cron.test.js
@@ -1,7 +1,7 @@
/* eslint-disable global-require */
import moment from 'moment';
import Bluebird from 'bluebird';
-import { recoverCron, cron } from '../../../../../website/server/libs/api-v3/cron';
+import { recoverCron, cron } from '../../../../../website/server/libs/cron';
import { model as User } from '../../../../../website/server/models/user';
import * as Tasks from '../../../../../website/server/models/task';
import { clone } from 'lodash';
diff --git a/test/api/v3/unit/libs/email.test.js b/test/api/v3/unit/libs/email.test.js
index cfd18857ed..46476aa7ef 100644
--- a/test/api/v3/unit/libs/email.test.js
+++ b/test/api/v3/unit/libs/email.test.js
@@ -4,7 +4,7 @@ import nconf from 'nconf';
import nodemailer from 'nodemailer';
import Bluebird from 'bluebird';
import requireAgain from 'require-again';
-import logger from '../../../../../website/server/libs/api-v3/logger';
+import logger from '../../../../../website/server/libs/logger';
import { TAVERN_ID } from '../../../../../website/server/models/group';
function defer () {
@@ -50,7 +50,7 @@ function getUser () {
}
describe('emails', () => {
- let pathToEmailLib = '../../../../../website/server/libs/api-v3/email';
+ let pathToEmailLib = '../../../../../website/server/libs/email';
describe('sendEmail', () => {
it('can send an email using the default transport', () => {
diff --git a/test/api/v3/unit/libs/encryption.test.js b/test/api/v3/unit/libs/encryption.test.js
index a63a527e74..0396fded1c 100644
--- a/test/api/v3/unit/libs/encryption.test.js
+++ b/test/api/v3/unit/libs/encryption.test.js
@@ -1,7 +1,7 @@
import {
encrypt,
decrypt,
-} from '../../../../../website/server/libs/api-v3/encryption';
+} from '../../../../../website/server/libs/encryption';
describe('encryption', () => {
it('can encrypt and decrypt', () => {
diff --git a/test/api/v3/unit/libs/errors.test.js b/test/api/v3/unit/libs/errors.test.js
index efa694d5ab..d1c1c1e758 100644
--- a/test/api/v3/unit/libs/errors.test.js
+++ b/test/api/v3/unit/libs/errors.test.js
@@ -5,7 +5,7 @@ import {
BadRequest,
InternalServerError,
NotFound,
-} from '../../../../../website/server/libs/api-v3/errors';
+} from '../../../../../website/server/libs/errors';
describe('Custom Errors', () => {
describe('CustomError', () => {
diff --git a/test/api/v3/unit/libs/i18n.test.js b/test/api/v3/unit/libs/i18n.test.js
index 06ebcbc0b6..9e31b1a406 100644
--- a/test/api/v3/unit/libs/i18n.test.js
+++ b/test/api/v3/unit/libs/i18n.test.js
@@ -2,7 +2,7 @@ import {
translations,
localePath,
langCodes,
-} from '../../../../../website/server/libs/api-v3/i18n';
+} from '../../../../../website/server/libs/i18n';
import fs from 'fs';
import path from 'path';
diff --git a/test/api/v3/unit/libs/logger.js b/test/api/v3/unit/libs/logger.js
index b7e1d490fc..20189ccbe1 100644
--- a/test/api/v3/unit/libs/logger.js
+++ b/test/api/v3/unit/libs/logger.js
@@ -3,7 +3,7 @@ import requireAgain from 'require-again';
/* eslint-disable global-require */
describe('logger', () => {
- let pathToLoggerLib = '../../../../../website/server/libs/api-v3/logger';
+ let pathToLoggerLib = '../../../../../website/server/libs/logger';
let infoSpy;
let errorSpy;
diff --git a/test/api/v3/unit/libs/password.test.js b/test/api/v3/unit/libs/password.test.js
index 68290aebc6..29de44676c 100644
--- a/test/api/v3/unit/libs/password.test.js
+++ b/test/api/v3/unit/libs/password.test.js
@@ -1,7 +1,7 @@
import {
encrypt as encryptPassword,
makeSalt,
-} from '../../../../../website/server/libs/api-v3/password';
+} from '../../../../../website/server/libs/password';
describe('Password Utilities', () => {
describe('Encrypt', () => {
diff --git a/test/api/v3/unit/libs/payments.test.js b/test/api/v3/unit/libs/payments.test.js
index 60394e83d4..33ba5d8f65 100644
--- a/test/api/v3/unit/libs/payments.test.js
+++ b/test/api/v3/unit/libs/payments.test.js
@@ -1,6 +1,6 @@
-import * as sender from '../../../../../website/server/libs/api-v3/email';
-import * as api from '../../../../../website/server/libs/api-v3/payments';
-import analytics from '../../../../../website/server/libs/api-v3/analyticsService';
+import * as sender from '../../../../../website/server/libs/email';
+import * as api from '../../../../../website/server/libs/payments';
+import analytics from '../../../../../website/server/libs/analyticsService';
import { model as User } from '../../../../../website/server/models/user';
import moment from 'moment';
diff --git a/test/api/v3/unit/libs/preening.test.js b/test/api/v3/unit/libs/preening.test.js
index af503ca480..3c28557125 100644
--- a/test/api/v3/unit/libs/preening.test.js
+++ b/test/api/v3/unit/libs/preening.test.js
@@ -1,4 +1,4 @@
-import { preenHistory } from '../../../../../website/server/libs/api-v3/preening';
+import { preenHistory } from '../../../../../website/server/libs/preening';
import moment from 'moment';
import sinon from 'sinon'; // eslint-disable-line no-shadow
import { generateHistory } from '../../../../helpers/api-unit.helper.js';
diff --git a/test/api/v3/unit/libs/pushNotifications.js b/test/api/v3/unit/libs/pushNotifications.js
index cbc0d71bef..0d6fead7ae 100644
--- a/test/api/v3/unit/libs/pushNotifications.js
+++ b/test/api/v3/unit/libs/pushNotifications.js
@@ -2,12 +2,13 @@ import { model as User } from '../../../../../website/server/models/user';
import requireAgain from 'require-again';
import pushNotify from 'push-notify';
import nconf from 'nconf';
+import gcmLib from 'node-gcm'; // works with FCM notifications too
describe('pushNotifications', () => {
let user;
let sendPushNotification;
- let pathToPushNotifications = '../../../../../website/server/libs/api-v3/pushNotifications';
- let gcmSendSpy;
+ let pathToPushNotifications = '../../../../../website/server/libs/pushNotifications';
+ let fcmSendSpy;
let apnSendSpy;
let identifier = 'identifier';
@@ -16,15 +17,12 @@ describe('pushNotifications', () => {
beforeEach(() => {
user = new User();
- gcmSendSpy = sinon.spy();
+ fcmSendSpy = sinon.spy();
apnSendSpy = sinon.spy();
- sandbox.stub(nconf, 'get').returns('true');
+ sandbox.stub(nconf, 'get').returns('true-key');
- sandbox.stub(pushNotify, 'gcm').returns({
- on: () => null,
- send: gcmSendSpy,
- });
+ sandbox.stub(gcmLib.Sender.prototype, 'send', fcmSendSpy);
sandbox.stub(pushNotify, 'apn').returns({
on: () => null,
@@ -40,14 +38,14 @@ describe('pushNotifications', () => {
it('throws if user is not supplied', () => {
expect(sendPushNotification).to.throw;
- expect(gcmSendSpy).to.not.have.been.called;
+ expect(fcmSendSpy).to.not.have.been.called;
expect(apnSendSpy).to.not.have.been.called;
});
it('throws if user.preferences.pushNotifications.unsubscribeFromAll is true', () => {
user.preferences.pushNotifications.unsubscribeFromAll = true;
expect(() => sendPushNotification(user)).to.throw;
- expect(gcmSendSpy).to.not.have.been.called;
+ expect(fcmSendSpy).to.not.have.been.called;
expect(apnSendSpy).to.not.have.been.called;
});
@@ -56,7 +54,7 @@ describe('pushNotifications', () => {
title,
message,
})).to.throw;
- expect(gcmSendSpy).to.not.have.been.called;
+ expect(fcmSendSpy).to.not.have.been.called;
expect(apnSendSpy).to.not.have.been.called;
});
@@ -65,7 +63,7 @@ describe('pushNotifications', () => {
identifier,
message,
})).to.throw;
- expect(gcmSendSpy).to.not.have.been.called;
+ expect(fcmSendSpy).to.not.have.been.called;
expect(apnSendSpy).to.not.have.been.called;
});
@@ -74,7 +72,7 @@ describe('pushNotifications', () => {
identifier,
title,
})).to.throw;
- expect(gcmSendSpy).to.not.have.been.called;
+ expect(fcmSendSpy).to.not.have.been.called;
expect(apnSendSpy).to.not.have.been.called;
});
@@ -84,68 +82,7 @@ describe('pushNotifications', () => {
title,
message,
});
- expect(gcmSendSpy).to.not.have.been.called;
- expect(apnSendSpy).to.not.have.been.called;
- });
-
- it('uses GCM for Android devices', () => {
- user.pushDevices.push({
- type: 'android',
- regId: '123',
- });
-
- let details = {
- identifier,
- title,
- message,
- payload: {
- a: true,
- b: true,
- },
- timeToLive: 23,
- };
-
- sendPushNotification(user, details);
- expect(gcmSendSpy).to.have.been.calledOnce;
- expect(gcmSendSpy).to.have.been.calledWithMatch({
- registrationId: '123',
- delayWhileIdle: true,
- timeToLive: 23,
- data: {
- identifier,
- title,
- message,
- a: true,
- b: true,
- },
- });
- expect(apnSendSpy).to.not.have.been.called;
- });
-
- it('defaults timeToLive to 15', () => {
- user.pushDevices.push({
- type: 'android',
- regId: '123',
- });
-
- let details = {
- identifier,
- title,
- message,
- };
-
- sendPushNotification(user, details);
- expect(gcmSendSpy).to.have.been.calledOnce;
- expect(gcmSendSpy).to.have.been.calledWithMatch({
- registrationId: '123',
- delayWhileIdle: true,
- timeToLive: 15,
- data: {
- identifier,
- title,
- message,
- },
- });
+ expect(fcmSendSpy).to.not.have.been.called;
expect(apnSendSpy).to.not.have.been.called;
});
@@ -180,6 +117,6 @@ describe('pushNotifications', () => {
b: true,
},
});
- expect(gcmSendSpy).to.not.have.been.called;
+ expect(fcmSendSpy).to.not.have.been.called;
});
});
diff --git a/test/api/v3/unit/libs/setupNconf.test.js b/test/api/v3/unit/libs/setupNconf.test.js
index 3e848b845f..afe000d969 100644
--- a/test/api/v3/unit/libs/setupNconf.test.js
+++ b/test/api/v3/unit/libs/setupNconf.test.js
@@ -1,4 +1,4 @@
-import setupNconf from '../../../../../website/server/libs/api-v3/setupNconf';
+import setupNconf from '../../../../../website/server/libs/setupNconf';
import path from 'path';
import nconf from 'nconf';
diff --git a/test/api/v3/unit/libs/webhooks.test.js b/test/api/v3/unit/libs/webhooks.test.js
index 502bfe3839..85072792fb 100644
--- a/test/api/v3/unit/libs/webhooks.test.js
+++ b/test/api/v3/unit/libs/webhooks.test.js
@@ -1,5 +1,5 @@
import request from 'request';
-import { sendTaskWebhook } from '../../../../../website/server/libs/api-v3/webhook';
+import { sendTaskWebhook } from '../../../../../website/server/libs/webhook';
describe('webhooks', () => {
beforeEach(() => {
diff --git a/test/api/v3/unit/middlewares/analytics.test.js b/test/api/v3/unit/middlewares/analytics.test.js
index 2a25380713..c55b212698 100644
--- a/test/api/v3/unit/middlewares/analytics.test.js
+++ b/test/api/v3/unit/middlewares/analytics.test.js
@@ -4,13 +4,13 @@ import {
generateReq,
generateNext,
} from '../../../../helpers/api-unit.helper';
-import analyticsService from '../../../../../website/server/libs/api-v3/analyticsService';
+import analyticsService from '../../../../../website/server/libs/analyticsService';
import nconf from 'nconf';
import requireAgain from 'require-again';
describe('analytics middleware', () => {
let res, req, next;
- let pathToAnalyticsMiddleware = '../../../../../website/server/middlewares/api-v3/analytics';
+ let pathToAnalyticsMiddleware = '../../../../../website/server/middlewares/analytics';
beforeEach(() => {
res = generateRes();
diff --git a/test/api/v3/unit/middlewares/cors.test.js b/test/api/v3/unit/middlewares/cors.test.js
index 78d11651f8..051eada21e 100644
--- a/test/api/v3/unit/middlewares/cors.test.js
+++ b/test/api/v3/unit/middlewares/cors.test.js
@@ -4,7 +4,7 @@ import {
generateReq,
generateNext,
} from '../../../../helpers/api-unit.helper';
-import cors from '../../../../../website/server/middlewares/api-v3/cors';
+import cors from '../../../../../website/server/middlewares/cors';
describe('cors middleware', () => {
let res, req, next;
diff --git a/test/api/v3/unit/middlewares/cronMiddleware.js b/test/api/v3/unit/middlewares/cronMiddleware.js
index 4e58c20343..db3741b9cc 100644
--- a/test/api/v3/unit/middlewares/cronMiddleware.js
+++ b/test/api/v3/unit/middlewares/cronMiddleware.js
@@ -5,13 +5,13 @@ import {
generateDaily,
} from '../../../../helpers/api-unit.helper';
import { cloneDeep } from 'lodash';
-import cronMiddleware from '../../../../../website/server/middlewares/api-v3/cron';
+import cronMiddleware from '../../../../../website/server/middlewares/cron';
import moment from 'moment';
import { model as User } from '../../../../../website/server/models/user';
import { model as Group } from '../../../../../website/server/models/group';
import * as Tasks from '../../../../../website/server/models/task';
-import analyticsService from '../../../../../website/server/libs/api-v3/analyticsService';
-import * as cronLib from '../../../../../website/server/libs/api-v3/cron';
+import analyticsService from '../../../../../website/server/libs/analyticsService';
+import * as cronLib from '../../../../../website/server/libs/cron';
import { v4 as generateUUID } from 'uuid';
describe('cron middleware', () => {
diff --git a/test/api/v3/unit/middlewares/ensureAccessRight.test.js b/test/api/v3/unit/middlewares/ensureAccessRight.test.js
index cc25e4f16b..fee84ce124 100644
--- a/test/api/v3/unit/middlewares/ensureAccessRight.test.js
+++ b/test/api/v3/unit/middlewares/ensureAccessRight.test.js
@@ -5,8 +5,8 @@ import {
generateNext,
} from '../../../../helpers/api-unit.helper';
import i18n from '../../../../../common/script/i18n';
-import { ensureAdmin, ensureSudo } from '../../../../../website/server/middlewares/api-v3/ensureAccessRight';
-import { NotAuthorized } from '../../../../../website/server/libs/api-v3/errors';
+import { ensureAdmin, ensureSudo } from '../../../../../website/server/middlewares/ensureAccessRight';
+import { NotAuthorized } from '../../../../../website/server/libs/errors';
describe('ensure access middlewares', () => {
let res, req, next;
diff --git a/test/api/v3/unit/middlewares/ensureDevelpmentMode.js b/test/api/v3/unit/middlewares/ensureDevelpmentMode.js
index d7915b365f..0815bc0007 100644
--- a/test/api/v3/unit/middlewares/ensureDevelpmentMode.js
+++ b/test/api/v3/unit/middlewares/ensureDevelpmentMode.js
@@ -4,8 +4,8 @@ import {
generateReq,
generateNext,
} from '../../../../helpers/api-unit.helper';
-import ensureDevelpmentMode from '../../../../../website/server/middlewares/api-v3/ensureDevelpmentMode';
-import { NotFound } from '../../../../../website/server/libs/api-v3/errors';
+import ensureDevelpmentMode from '../../../../../website/server/middlewares/ensureDevelpmentMode';
+import { NotFound } from '../../../../../website/server/libs/errors';
import nconf from 'nconf';
describe('developmentMode middleware', () => {
diff --git a/test/api/v3/unit/middlewares/errorHandler.test.js b/test/api/v3/unit/middlewares/errorHandler.test.js
index da7d54e667..1c973abe23 100644
--- a/test/api/v3/unit/middlewares/errorHandler.test.js
+++ b/test/api/v3/unit/middlewares/errorHandler.test.js
@@ -4,15 +4,15 @@ import {
generateNext,
} from '../../../../helpers/api-unit.helper';
-import errorHandler from '../../../../../website/server/middlewares/api-v3/errorHandler';
-import responseMiddleware from '../../../../../website/server/middlewares/api-v3/response';
+import errorHandler from '../../../../../website/server/middlewares/errorHandler';
+import responseMiddleware from '../../../../../website/server/middlewares/response';
import {
getUserLanguage,
attachTranslateFunction,
-} from '../../../../../website/server/middlewares/api-v3/language';
+} from '../../../../../website/server/middlewares/language';
-import { BadRequest } from '../../../../../website/server/libs/api-v3/errors';
-import logger from '../../../../../website/server/libs/api-v3/logger';
+import { BadRequest } from '../../../../../website/server/libs/errors';
+import logger from '../../../../../website/server/libs/logger';
describe('errorHandler', () => {
let res, req, next;
diff --git a/test/api/v3/unit/middlewares/language.test.js b/test/api/v3/unit/middlewares/language.test.js
index 23ef6deddd..20bac3c518 100644
--- a/test/api/v3/unit/middlewares/language.test.js
+++ b/test/api/v3/unit/middlewares/language.test.js
@@ -6,7 +6,7 @@ import {
import {
getUserLanguage,
attachTranslateFunction,
-} from '../../../../../website/server/middlewares/api-v3/language';
+} from '../../../../../website/server/middlewares/language';
import common from '../../../../../common';
import Bluebird from 'bluebird';
import { model as User } from '../../../../../website/server/models/user';
diff --git a/test/api/v3/unit/middlewares/maintenanceMode.test.js b/test/api/v3/unit/middlewares/maintenanceMode.test.js
index 21cabe963d..857fb2c941 100644
--- a/test/api/v3/unit/middlewares/maintenanceMode.test.js
+++ b/test/api/v3/unit/middlewares/maintenanceMode.test.js
@@ -8,7 +8,7 @@ import requireAgain from 'require-again';
describe('maintenance mode middleware', () => {
let res, req, next;
- let pathToMaintenanceModeMiddleware = '../../../../../website/server/middlewares/api-v3/maintenanceMode';
+ let pathToMaintenanceModeMiddleware = '../../../../../website/server/middlewares/maintenanceMode';
beforeEach(() => {
res = generateRes();
diff --git a/test/api/v3/unit/middlewares/response.js b/test/api/v3/unit/middlewares/response.js
index b3182ea87a..cbf2f178e3 100644
--- a/test/api/v3/unit/middlewares/response.js
+++ b/test/api/v3/unit/middlewares/response.js
@@ -3,7 +3,7 @@ import {
generateReq,
generateNext,
} from '../../../../helpers/api-unit.helper';
-import responseMiddleware from '../../../../../website/server/middlewares/api-v3/response';
+import responseMiddleware from '../../../../../website/server/middlewares/response';
describe('response middleware', () => {
let res, req, next;
diff --git a/test/api/v3/unit/models/group.test.js b/test/api/v3/unit/models/group.test.js
index c3c7f615c1..ff3785ef5a 100644
--- a/test/api/v3/unit/models/group.test.js
+++ b/test/api/v3/unit/models/group.test.js
@@ -2,7 +2,7 @@ import { sleep } from '../../../../helpers/api-unit.helper';
import { model as Group } from '../../../../../website/server/models/group';
import { model as User } from '../../../../../website/server/models/user';
import { quests as questScrolls } from '../../../../../common/script/content';
-import * as email from '../../../../../website/server/libs/api-v3/email';
+import * as email from '../../../../../website/server/libs/email';
import validator from 'validator';
import { TAVERN_ID } from '../../../../../common/script/';
@@ -434,6 +434,47 @@ describe('Group Model', () => {
});
});
+ describe('#leaveGroup', () => {
+ it('removes user from group quest', async () => {
+ party.quest.members = {
+ [participatingMember._id]: true,
+ [questLeader._id]: true,
+ [nonParticipatingMember._id]: false,
+ [undecidedMember._id]: null,
+ };
+ party.memberCount = 4;
+ await party.save();
+
+ await party.leave(participatingMember);
+
+ party = await Group.findOne({_id: party._id});
+ expect(party.quest.members).to.eql({
+ [questLeader._id]: true,
+ [nonParticipatingMember._id]: false,
+ [undecidedMember._id]: null,
+ });
+ });
+
+ it('deletes a private group when the last member leaves', async () => {
+ party.memberCount = 1;
+
+ await party.leave(participatingMember);
+
+ party = await Group.findOne({_id: party._id});
+ expect(party).to.not.exist;
+ });
+
+ it('does not delete a public group when the last member leaves', async () => {
+ party.memberCount = 1;
+ party.privacy = 'public';
+
+ await party.leave(participatingMember);
+
+ party = await Group.findOne({_id: party._id});
+ expect(party).to.exist;
+ });
+ });
+
describe('#sendChat', () => {
beforeEach(() => {
sandbox.spy(User, 'update');
diff --git a/test/api/v3/unit/models/task.test.js b/test/api/v3/unit/models/task.test.js
index 7182b8e5a1..4ae02e6ca9 100644
--- a/test/api/v3/unit/models/task.test.js
+++ b/test/api/v3/unit/models/task.test.js
@@ -2,7 +2,7 @@ import { model as Challenge } from '../../../../../website/server/models/challen
import { model as Group } from '../../../../../website/server/models/group';
import { model as User } from '../../../../../website/server/models/user';
import * as Tasks from '../../../../../website/server/models/task';
-import { InternalServerError } from '../../../../../website/server/libs/api-v3/errors';
+import { InternalServerError } from '../../../../../website/server/libs/errors';
import { each } from 'lodash';
import { generateHistory } from '../../../../helpers/api-unit.helper.js';
diff --git a/test/api/v3/unit/models/user.test.js b/test/api/v3/unit/models/user.test.js
index 29ac2c0c07..f6be1a8930 100644
--- a/test/api/v3/unit/models/user.test.js
+++ b/test/api/v3/unit/models/user.test.js
@@ -1,4 +1,5 @@
import { model as User } from '../../../../../website/server/models/user';
+import common from '../../../../../common';
describe('User Model', () => {
it('keeps user._tmp when calling .toJSON', () => {
@@ -31,6 +32,21 @@ describe('User Model', () => {
expect(toJSON).to.not.have.keys('_nonTmp');
});
+ it('can add computed stats to a JSONified user object', () => {
+ let user = new User();
+ let userToJSON = user.toJSON();
+
+ expect(userToJSON.stats.maxMP).to.not.exists;
+ expect(userToJSON.stats.maxHealth).to.not.exists;
+ expect(userToJSON.stats.toNextLevel).to.not.exists;
+
+ user.addComputedStatsToJSONObj(userToJSON);
+
+ expect(userToJSON.stats.maxMP).to.exists;
+ expect(userToJSON.stats.maxHealth).to.equal(common.maxHealth);
+ expect(userToJSON.stats.toNextLevel).to.equal(common.tnl(user.stats.lvl));
+ });
+
context('notifications', () => {
it('can add notifications with data', () => {
let user = new User();
diff --git a/test/common/libs/shops.js b/test/common/libs/shops.js
new file mode 100644
index 0000000000..16fce945b1
--- /dev/null
+++ b/test/common/libs/shops.js
@@ -0,0 +1,84 @@
+import shared from '../../../common';
+import {
+ generateUser,
+} from '../../helpers/common.helper';
+
+describe('shops', () => {
+ let user = generateUser();
+
+ describe('market', () => {
+ let shopCategories = shared.shops.getMarketCategories(user);
+
+ it('contains at least the 3 default categories', () => {
+ expect(shopCategories.length).to.be.greaterThan(2);
+ });
+
+ it('does not contain an empty category', () => {
+ _.each(shopCategories, (category) => {
+ expect(category.items.length).to.be.greaterThan(0);
+ });
+ });
+
+ it('items contain required fields', () => {
+ _.each(shopCategories, (category) => {
+ _.each(category.items, (item) => {
+ expect(item).to.have.all.keys(['key', 'text', 'notes', 'value', 'currency', 'locked', 'purchaseType', 'class']);
+ });
+ });
+ });
+ });
+
+ describe('questShop', () => {
+ let shopCategories = shared.shops.getQuestShopCategories(user);
+
+ it('does not contain an empty category', () => {
+ _.each(shopCategories, (category) => {
+ expect(category.items.length).to.be.greaterThan(0);
+ });
+ });
+
+ it('items contain required fields', () => {
+ _.each(shopCategories, (category) => {
+ _.each(category.items, (item) => {
+ expect(item).to.have.all.keys('key', 'text', 'notes', 'value', 'currency', 'locked', 'purchaseType', 'boss', 'class', 'collect', 'drop', 'unlockCondition', 'lvl');
+ });
+ });
+ });
+ });
+
+ describe('timeTravelers', () => {
+ let shopCategories = shared.shops.getTimeTravelersCategories(user);
+
+ it('does not contain an empty category', () => {
+ _.each(shopCategories, (category) => {
+ expect(category.items.length).to.be.greaterThan(0);
+ });
+ });
+
+ it('items contain required fields', () => {
+ _.each(shopCategories, (category) => {
+ _.each(category.items, (item) => {
+ expect(item).to.have.all.keys('key', 'text', 'value', 'currency', 'locked', 'purchaseType', 'class', 'notes', 'class');
+ });
+ });
+ });
+ });
+
+ describe('seasonalShop', () => {
+ let shopCategories = shared.shops.getSeasonalShopCategories(user);
+
+ it('does not contain an empty category', () => {
+ _.each(shopCategories, (category) => {
+ expect(category.items.length).to.be.greaterThan(0);
+ });
+ });
+
+ it('items contain required fields', () => {
+ _.each(shopCategories, (category) => {
+ _.each(category.items, (item) => {
+ expect(item).to.have.all.keys('key', 'text', 'notes', 'value', 'currency', 'locked', 'purchaseType', 'specialClass', 'type');
+ });
+ });
+ });
+ });
+});
diff --git a/test/helpers/api-integration/translate.js b/test/helpers/api-integration/translate.js
index 3ef7d68541..ceaf496b3c 100644
--- a/test/helpers/api-integration/translate.js
+++ b/test/helpers/api-integration/translate.js
@@ -1,5 +1,5 @@
import i18n from '../../../common/script/i18n';
-i18n.translations = require('../../../website/server/libs/api-v3/i18n').translations;
+i18n.translations = require('../../../website/server/libs/i18n').translations;
// Use this to verify error messages returned by the server
// That way, if the translated string changes, the test
diff --git a/test/helpers/api-integration/v2/index.js b/test/helpers/api-integration/v2/index.js
deleted file mode 100644
index 8828b9b8ed..0000000000
--- a/test/helpers/api-integration/v2/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Import requester function, set it up for v2, export it
-import { requester } from '../requester';
-requester.setApiVersion('v2');
-export { requester };
-
-export { translate } from '../translate';
-export { checkExistence, resetHabiticaDB } from '../../mongo';
-export * from './object-generators';
diff --git a/test/helpers/api-integration/v2/object-generators.js b/test/helpers/api-integration/v2/object-generators.js
deleted file mode 100644
index 3cd3c7d1d7..0000000000
--- a/test/helpers/api-integration/v2/object-generators.js
+++ /dev/null
@@ -1,146 +0,0 @@
-import {
- times,
- map,
-} from 'lodash';
-import Bluebird from 'bluebird';
-import { v4 as generateUUID } from 'uuid';
-import { ApiUser, ApiGroup, ApiChallenge } from '../api-classes';
-import { requester } from '../requester';
-
-// Creates a new user and returns it
-// If you need the user to have specific requirements,
-// such as a balance > 0, just pass in the adjustment
-// to the update object. If you want to adjust a nested
-// paramter, such as the number of wolf eggs the user has,
-// , you can do so by passing in the full path as a string:
-// { 'items.eggs.Wolf': 10 }
-export async function generateUser (update = {}) {
- let username = generateUUID();
- let password = 'password';
- let email = `${username}@example.com`;
-
- let user = await requester().post('/register', {
- username,
- email,
- password,
- confirmPassword: password,
- });
-
- let apiUser = new ApiUser(user);
-
- await apiUser.update(update);
-
- return apiUser;
-}
-
-// Generates a new group. Requires a user object, which
-// will will become the groups leader. Takes a details argument
-// for the initial group creation and an update argument which
-// will update the group via the db
-export async function generateGroup (leader, details = {}, update = {}) {
- details.type = details.type || 'party';
- details.privacy = details.privacy || 'private';
- details.name = details.name || 'test group';
-
- let members;
-
- if (details.members) {
- members = details.members;
- delete details.members;
- }
-
- let group = await leader.post('/groups', details);
- let apiGroup = new ApiGroup(group);
-
- const groupMembershipTypes = {
- party: { 'party._id': group._id},
- guild: { guilds: [group._id] },
- };
-
- await Bluebird.all(
- map(members, (member) => {
- return member.update(groupMembershipTypes[group.type]);
- })
- );
-
- await apiGroup.update(update);
- await apiGroup.sync();
- return apiGroup;
-}
-
-// This is generate group + the ability to create
-// real users to populate it. The settings object
-// takes in:
-// members: Number - the number of group members to create. Defaults to 0.
-// inivtes: Number - the number of users to create and invite to the group. Defaults to 0.
-// groupDetails: Object - how to initialize the group
-// leaderDetails: Object - defaults for the leader, defaults with a gem balance so the user
-// can create the group
-//
-// Returns an object with
-// members: an array of user objects that correspond to the members of the group
-// invitees: an array of user objects that correspond to the invitees of the group
-// leader: the leader user object
-// group: the group object
-export async function createAndPopulateGroup (settings = {}) {
- let numberOfMembers = settings.members || 0;
- let numberOfInvites = settings.invites || 0;
- let groupDetails = settings.groupDetails;
- let leaderDetails = settings.leaderDetails || { balance: 10 };
-
- let groupLeader = await generateUser(leaderDetails);
- let group = await generateGroup(groupLeader, groupDetails);
-
- const groupMembershipTypes = {
- party: { 'party._id': group._id},
- guild: { guilds: [group._id] },
- };
-
- let members = await Bluebird.all(
- times(numberOfMembers, () => {
- return generateUser(groupMembershipTypes[group.type]);
- })
- );
-
- await group.update({ memberCount: numberOfMembers + 1});
-
- let invitees = await Bluebird.all(
- times(numberOfInvites, () => {
- return generateUser();
- })
- );
-
- let invitationPromises = invitees.map((invitee) => {
- return groupLeader.post(`/groups/${group._id}/invite`, {
- uuids: [invitee._id],
- });
- });
-
- await Bluebird.all(invitationPromises);
-
- return {
- groupLeader,
- group,
- members,
- invitees,
- };
-}
-
-// Generates a new challenge. Requires an ApiGroup object with a
-// _leader attribute (given with generateGroup method). The group
-// will will become the group that owns the challenge. The group's
-// leader will be the one to create the challenge. It takes a details
-// argument for the initial challenge creation and an update argument
-// which will update the challenge via the db
-export async function generateChallenge (challengeCreator, group, details = {}, update = {}) {
- details.group = group._id;
- details.prize = details.prize || 0;
- details.official = details.official || false;
-
- let challenge = await challengeCreator.post('/challenges', details);
- let apiChallenge = new ApiChallenge(challenge);
-
- await apiChallenge.update(update);
-
- return apiChallenge;
-}
diff --git a/test/helpers/api-unit.helper.js b/test/helpers/api-unit.helper.js
index 1c567928c6..42b717ae91 100644
--- a/test/helpers/api-unit.helper.js
+++ b/test/helpers/api-unit.helper.js
@@ -1,4 +1,4 @@
-import '../../website/server/libs/api-v3/i18n';
+import '../../website/server/libs/i18n';
import mongoose from 'mongoose';
import { defaultsDeep as defaults } from 'lodash';
import { model as User } from '../../website/server/models/user';
diff --git a/test/helpers/content.helper.js b/test/helpers/content.helper.js
index c1ac3c5657..b97606c256 100644
--- a/test/helpers/content.helper.js
+++ b/test/helpers/content.helper.js
@@ -1,6 +1,6 @@
require('./globals.helper');
import i18n from '../../common/script/i18n';
-i18n.translations = require('../../website/server/libs/api-v3/i18n').translations;
+i18n.translations = require('../../website/server/libs/i18n').translations;
export const STRING_ERROR_MSG = 'Error processing the string. Please see Help > Report a Bug.';
export const STRING_DOES_NOT_EXIST_MSG = /^String '.*' not found.$/;
diff --git a/test/helpers/globals.helper.js b/test/helpers/globals.helper.js
index 253d07e1d4..339a603021 100644
--- a/test/helpers/globals.helper.js
+++ b/test/helpers/globals.helper.js
@@ -23,12 +23,12 @@ import mongoose from 'mongoose';
// Load nconf for unit tests
//------------------------------
if (process.env.LOAD_SERVER === '0') { // when the server is in a different process we simply connect to mongoose
- require('../../website/server/libs/api-v3/setupNconf')('./config.json');
+ require('../../website/server/libs/setupNconf')('./config.json');
// Use Q promises instead of mpromise in mongoose
mongoose.Promise = Bluebird;
mongoose.connect(nconf.get('TEST_DB_URI'));
} else { // When running tests and the server in the same process
- require('../../website/server/libs/api-v3/setupNconf')('./config.json.example');
+ require('../../website/server/libs/setupNconf')('./config.json.example');
nconf.set('NODE_DB_URI', nconf.get('TEST_DB_URI'));
nconf.set('NODE_ENV', 'test');
nconf.set('IS_TEST', true);
diff --git a/test/sanity/README.md b/test/sanity/README.md
new file mode 100644
index 0000000000..c4fb006115
--- /dev/null
+++ b/test/sanity/README.md
@@ -0,0 +1,9 @@
+# Sanity Tests
+
+## Babel Paths for Production Environment
+
+In development, we [transpile at server start](https://github.com/HabitRPG/habitrpg/blob/1ed7e21542519abe7a3c601f396e1a07f9b050ae/website/server/index.js#L6-L8). This allows us to work quickly while developing, but is not suitable for production. So, in production we transpile the server code before the app starts.
+
+This system means that requiring any files from `common/script` in `website/server/**/*.js` must be done through the `common/index.js` module. In development, it'll pass through to the pre-transpiled files, but in production it'll point to the transpiled versions. If you try to require or import a file directly, it will error in production as the server doesn't know what to do with some es2015isms (such as the import statement).
+
+This test just verifies that none of the files in the server code are calling the common files directly.
diff --git a/test/sanity/use-proper-babel-path.js b/test/sanity/use-proper-babel-path.js
new file mode 100644
index 0000000000..b70403bece
--- /dev/null
+++ b/test/sanity/use-proper-babel-path.js
@@ -0,0 +1,27 @@
+'use strict';
+
+let glob = require('glob').sync;
+let readFile = require('fs').readFileSync;
+
+const IMPORT_REGEX = /(import|require).*common\/script/;
+
+describe('Use Proper Babel Paths', () => {
+ it('uses proper babel files in website/server', () => {
+ let websiteServerPaths = glob('./website/server/**/*.js');
+
+ if (websiteServerPaths.length === 0) {
+ throw new Error('Could not find any files in website/server/**/*.js');
+ }
+
+ websiteServerPaths.forEach((filePath) => {
+ let file = readFile(filePath, {encoding: 'utf8'});
+
+ try {
+ expect(file).to.not.match(IMPORT_REGEX);
+ } catch (err) {
+ // Nicer error reporting if this condition is violated
+ throw new Error(`${filePath} contains an invalid import statement to common/script, which will work in development but fail in production. See README in this directory for more details.`);
+ }
+ });
+ });
+});
diff --git a/website/client/css/alerts.styl b/website/client/css/alerts.styl
index e5ac4aa042..76b779300c 100644
--- a/website/client/css/alerts.styl
+++ b/website/client/css/alerts.styl
@@ -14,6 +14,7 @@
display: inline-block
.wide-popover
+ max-width: -moz-max-content
max-width: max-content
// Small alerts
diff --git a/website/client/js/controllers/challengesCtrl.js b/website/client/js/controllers/challengesCtrl.js
index bcc62eca72..359db5f985 100644
--- a/website/client/js/controllers/challengesCtrl.js
+++ b/website/client/js/controllers/challengesCtrl.js
@@ -358,7 +358,7 @@ habitrpg.controller("ChallengesCtrl", ['$rootScope','$scope', 'Shared', 'User',
_calculateMaxPrize(gid);
- if (gid == TAVERN_ID) {
+ if (gid == TAVERN_ID && !($scope.newChallenge.prize > 0)) {
$scope.newChallenge.prize = 1;
}
})
diff --git a/website/client/js/controllers/inventoryCtrl.js b/website/client/js/controllers/inventoryCtrl.js
index 64c222cb32..84b4ed8d14 100644
--- a/website/client/js/controllers/inventoryCtrl.js
+++ b/website/client/js/controllers/inventoryCtrl.js
@@ -352,6 +352,11 @@ habitrpg.controller("InventoryCtrl",
User.hourglassPurchase({params:{type:type,key:key}});
};
+ $scope.marketShopCategories = Shared.shops.getMarketCategories(user);
+ $scope.questShopCategories = Shared.shops.getQuestShopCategories(user);
+ $scope.timeTravelersCategories = Shared.shops.getTimeTravelersCategories(user);
+ $scope.seasonalShopCategories = Shared.shops.getSeasonalShopCategories(user);
+
function _updateDropAnimalCount(items) {
$scope.petCount = Shared.count.beastMasterProgress(items.pets);
$scope.mountCount = Shared.count.mountMasterProgress(items.mounts);
diff --git a/website/server/controllers/api-v2/auth.js b/website/server/controllers/api-v2/auth.js
deleted file mode 100644
index 9b27708614..0000000000
--- a/website/server/controllers/api-v2/auth.js
+++ /dev/null
@@ -1,362 +0,0 @@
-var _ = require('lodash');
-var validator = require('validator');
-var passport = require('passport');
-var shared = require('../../../../common');
-var async = require('async');
-var utils = require('../../libs/api-v2/utils');
-var nconf = require('nconf');
-var request = require('request');
-import {
- model as User,
-} from '../../models/user';
-import {
- model as EmailUnsubscription,
-} from '../../models/emailUnsubscription';
-
-var analytics = utils.analytics;
-var i18n = require('./../../libs/api-v2/i18n');
-
-var isProd = nconf.get('NODE_ENV') === 'production';
-
-var api = module.exports;
-
-var NO_TOKEN_OR_UID = { err: shared.i18n.t('messageAuthMustIncludeTokens') };
-var NO_USER_FOUND = {err: shared.i18n.t('messageAuthNoUserFound') };
-var NO_SESSION_FOUND = { err: shared.i18n.t('messageAuthMustBeLoggedIn') };
-var accountSuspended = function(uuid){
- return {
- err: 'Account has been suspended, please contact leslie@habitica.com with your UUID ('+uuid+') for assistance.',
- code: 'ACCOUNT_SUSPENDED'
- };
-}
-
-api.auth = function(req, res, next) {
- var uid = req.headers['x-api-user'];
- var token = req.headers['x-api-key'];
- if (!(uid && token)) return res.status(401).json(NO_TOKEN_OR_UID);
- User.findOne({_id: uid, apiToken: token}, function(err, user) {
- if (err) return next(err);
- if (_.isEmpty(user)) return res.status(401).json(NO_USER_FOUND);
- if (user.auth.blocked) return res.status(401).json(accountSuspended(user._id));
-
- res.locals.wasModified = req.query._v ? +user._v !== +req.query._v : true;
- res.locals.user = user;
- req.session.userId = user._id;
- return next();
- });
-};
-
-api.authWithSession = function(req, res, next) { //[todo] there is probably a more elegant way of doing this...
- if (!(req.session && req.session.userId))
- return res.status(401).json(NO_SESSION_FOUND);
- User.findOne({_id: req.session.userId}, function(err, user) {
- if (err) return next(err);
- if (_.isEmpty(user)) return res.status(401).json(NO_USER_FOUND);
- res.locals.user = user;
- next();
- });
-};
-
-// TODO passing auth params as query params is not safe as they are logged by browser history, ...
-api.authWithUrl = function(req, res, next) {
- User.findOne({_id:req.query._id, apiToken:req.query.apiToken}, function(err,user){
- if (err) return next(err);
- if (_.isEmpty(user)) return res.status(401).json(NO_USER_FOUND);
- res.locals.user = user;
- next();
- });
-}
-
-api.registerUser = function(req, res, next) {
- var email = req.body.email && req.body.email.toLowerCase();
- var username = req.body.username;
- // Get the lowercase version of username to check that we do not have duplicates
- // So we can search for it in the database and then reject the choosen username if 1 or more results are found
- var lowerCaseUsername = username && username.toLowerCase();
-
- async.auto({
- validate: function(cb) {
- if (!(username && req.body.password && email))
- return cb({code:401, err: shared.i18n.t('messageAuthCredentialsRequired')});
- if (req.body.password !== req.body.confirmPassword)
- return cb({code:401, err: shared.i18n.t('messageAuthPasswordMustMatch')});
- if (!validator.isEmail(email))
- return cb({code:401, err: ":email invalid"});
- cb();
- },
- findReg: function(cb) {
- // Search for duplicates using lowercase version of username
- User.findOne({$or:[{'auth.local.email': email}, {'auth.local.lowerCaseUsername': lowerCaseUsername}]}, {'auth.local':1}, cb);
- },
- findFacebook: function(cb){
- User.findOne({_id: req.headers['x-api-user'], apiToken: req.headers['x-api-key']}, {auth:1}, cb);
- },
- register: ['validate', 'findReg', 'findFacebook', function(cb, data) {
- if (data.findReg) {
- if (email === data.findReg.auth.local.email) return cb({code:401, err:"Email already taken"});
- // Check that the lowercase username isn't already used
- if (lowerCaseUsername === data.findReg.auth.local.lowerCaseUsername) return cb({code:401, err: shared.i18n.t('messageAuthUsernameTaken')});
- }
- var salt = utils.makeSalt();
- var newUser = {
- auth: {
- local: {
- username: username,
- lowerCaseUsername: lowerCaseUsername, // Store the lowercase version of the username
- email: email, // Store email as lowercase
- salt: salt,
- hashed_password: utils.encryptPassword(req.body.password, salt)
- },
- timestamps: {created: +new Date(), loggedIn: +new Date()}
- }
- };
- // existing user, allow them to add local authentication
- if (data.findFacebook) {
- data.findFacebook.auth.local = newUser.auth.local;
- data.findFacebook.registeredThrough = newUser.registeredThrough;
- data.findFacebook.save(cb);
- // new user, register them
- } else {
- newUser.preferences = newUser.preferences || {};
- newUser.preferences.language = req.language; // User language detected from browser, not saved
- var user = new User(newUser);
-
- user.registeredThrough = req.headers['x-client'];
- var analyticsData = {
- category: 'acquisition',
- type: 'local',
- gaLabel: 'local',
- uuid: user._id,
- };
- analytics.track('register', analyticsData)
-
- user.save(function(err, savedUser){
- if (err) return cb(err);
- // Clean previous email preferences
- EmailUnsubscription.remove({email: savedUser.auth.local.email}, function(){
- utils.txnEmail(savedUser, 'welcome');
- });
- cb.apply(cb, arguments);
- });
- }
- }]
- }, function(err, data) {
- if (err) return err.code ? res.status(err.code).json(err) : next(err);
- data.register[0].getTransformedData(function(err, userTransformed){
- if(err) return next(err);
- res.status(200).json(userTransformed);
- });
- });
-};
-
-api.loginLocal = function(req, res, next) {
- var username = req.body.username;
- var password = req.body.password;
- if (!(username && password)) return res.status(401).json({err:'Missing :username or :password in request body, please provide both'});
- var login = validator.isEmail(username) ?
- {'auth.local.email':username.toLowerCase()} : // Emails are all lowercase
- {'auth.local.username':username}; // Use the username as the user typed it
-
- User.findOne(login, {auth:1}, function(err, user){
- if (err) return next(err);
- if (!user) return res.status(401).json({err:"Uh-oh - your username or password is incorrect.\n- Make sure your username or email is typed correctly.\n- You may have signed up with Facebook, not email. Double-check by trying Facebook login.\n- If you forgot your password, click \"Forgot Password\" on the habitica.com website's login form."});
- if (user.auth.blocked) return res.status(401).json(accountSuspended(user._id));
- // We needed the whole user object first so we can get his salt to encrypt password comparison
- User.findOne(
- {$and: [login, {'auth.local.hashed_password': utils.encryptPassword(password, user.auth.local.salt)}]}
- , {_id:1, apiToken:1}
- , function(err, user){
- if (err) return next(err);
- if (!user) return res.status(401).json({err:"Uh-oh - your username or password is incorrect.\n- Make sure your username or email is typed correctly.\n- You may have signed up with Facebook, not email. Double-check by trying Facebook login.\n- If you forgot your password, click \"Forgot Password\" on the habitica.com website's login form."});
- res.json({id: user._id,token: user.apiToken});
- password = null;
- });
- });
-};
-
-/*
- POST /user/auth/social
- */
-api.loginSocial = function(req, res, next) {
- var access_token = req.body.authResponse.access_token,
- network = req.body.network;
- if (network!=='facebook')
- return res.status(401).json({err:"Only Facebook supported currently."});
- async.auto({
- profile: function (cb) {
- passport._strategies[network].userProfile(access_token, cb);
- },
- user: ['profile', function (cb, results) {
- var q = {};
- q['auth.' + network + '.id'] = results.profile.id;
- User.findOne(q, {_id: 1, apiToken: 1, auth: 1}, cb);
- }],
- register: ['profile', 'user', function (cb, results) {
- if (results.user) return cb(null, results.user);
- // Create new user
- var prof = results.profile;
- var user = {
- preferences: {
- language: req.language // User language detected from browser, not saved
- },
- auth: {
- timestamps: {created: +new Date(), loggedIn: +new Date()}
- }
- };
- user.auth[network] = prof;
- user = new User(user);
- user.registeredThrough = req.headers['x-client'];
-
- user.save(function(err, savedUser){
- // Clean previous email preferences
- if(savedUser.auth.facebook.emails && savedUser.auth.facebook.emails[0] && savedUser.auth.facebook.emails[0].value){
- EmailUnsubscription.remove({email: savedUser.auth.facebook.emails[0].value}, function(){
- utils.txnEmail(savedUser, 'welcome');
- });
- }
- cb.apply(cb, arguments);
- });
-
- var analyticsData = {
- category: 'acquisition',
- type: network,
- gaLabel: network,
- uuid: user._id,
- };
- analytics.track('register', analyticsData)
- }]
- }, function(err, results){
- if (err) return res.status(401).json({err: err.toString ? err.toString() : err});
- var acct = results.register[0] ? results.register[0] : results.register;
- if (acct.auth.blocked) return res.status(401).json(accountSuspended(acct._id));
- return res.status(200).json({id:acct._id, token:acct.apiToken});
- })
-};
-
-/**
- * DELETE /user/auth/social
- */
-api.deleteSocial = function(req,res,next){
- if (!res.locals.user.auth.local.username)
- return res.status(401).json({err:"Account lacks another authentication method, can't detach Facebook"});
- //TODO for some reason, the following gives https://gist.github.com/lefnire/f93eb306069b9089d123
- //res.locals.user.auth.facebook = null;
- //res.locals.user.auth.save(function(err, saved){
- User.update({_id:res.locals.user._id}, {$unset:{'auth.facebook':1}}, function(err){
- if (err) return next(err);
- res.sendStatus(200);
- })
-}
-
-api.resetPassword = function(req, res, next){
- var email = req.body.email && req.body.email.toLowerCase(), // Emails are all lowercase
- salt = utils.makeSalt(),
- newPassword = utils.makeSalt(), // use a salt as the new password too (they'll change it later)
- hashed_password = utils.encryptPassword(newPassword, salt);
-
- if(!email) return res.status(400).json({err: "Email not provided"});
-
- User.findOne({'auth.local.email': email}, function(err, user){
- if (err) return next(err);
- if (!user) return res.status(401).json({err:"Sorry, we can't find a user registered with email " + email + "\n- Make sure your email address is typed correctly.\n- You may have signed up with Facebook, not email. Double-check by trying Facebook login."});
- user.auth.local.salt = salt;
- user.auth.local.hashed_password = hashed_password;
- utils.sendEmail({
- from: "Habitica ",
- to: email,
- subject: "Password Reset for Habitica",
- text: "Password for " + user.auth.local.username + " has been reset to " + newPassword + " Important! Both username and password are case-sensitive -- you must enter both exactly as shown here. We recommend copying and pasting both instead of typing them. Log in at " + nconf.get('BASE_URL') + ". After you've logged in, head to " + nconf.get('BASE_URL') + "/#/options/settings/settings and change your password.",
- html: "Password for " + user.auth.local.username + " has been reset to " + newPassword + " Important! Both username and password are case-sensitive -- you must enter both exactly as shown here. We recommend copying and pasting both instead of typing them. Log in at " + nconf.get('BASE_URL') + ". After you've logged in, head to " + nconf.get('BASE_URL') + "/#/options/settings/settings and change your password."
- });
- user.save(function(err){
- if(err) return next(err);
- res.send('New password sent to '+ email);
- email = salt = newPassword = hashed_password = null;
- });
- });
-};
-
-var invalidPassword = function(user, password){
- var hashed_password = utils.encryptPassword(password, user.auth.local.salt);
- if (hashed_password !== user.auth.local.hashed_password)
- return {code:401, err:"Incorrect password"};
- return false;
-}
-
-api.changeUsername = function(req, res, next) {
- var user = res.locals.user;
- var username = req.body.username;
- var lowerCaseUsername = username && username.toLowerCase(); // we search for the lowercased version to intercept duplicates
-
- if(!username) return res.status(400).json({err: "Username not provided"});
- async.waterfall([
- function(cb){
- User.findOne({'auth.local.lowerCaseUsername': lowerCaseUsername}, {auth:1}, cb);
- },
- function(found, cb){
- if (found) return cb({code:401, err: "Username already taken"});
- if (invalidPassword(user, req.body.password)) return cb(invalidPassword(user, req.body.password));
- user.auth.local.username = username;
- user.auth.local.lowerCaseUsername = lowerCaseUsername;
-
- user.save(cb);
- }
- ], function(err){
- if (err) return err.code ? res.status(err.code).json(err) : next(err);
- res.sendStatus(200);
- })
-}
-
-api.changeEmail = function(req, res, next){
- var email = req.body.email && req.body.email.toLowerCase(); // emails are all lowercase
- if(!email) return res.status(400).json({err: "Email not provided"});
-
- async.waterfall([
- function(cb){
- User.findOne({'auth.local.email': email}, {auth:1}, cb);
- },
- function(found, cb){
- if(found) return cb({code:401, err: shared.i18n.t('messageAuthEmailTaken')});
- if (invalidPassword(res.locals.user, req.body.password)) return cb(invalidPassword(res.locals.user, req.body.password));
- res.locals.user.auth.local.email = email;
- res.locals.user.save(cb);
- }
- ], function(err){
- if (err) return err.code ? res.status(err.code).json(err) : next(err);
- res.sendStatus(200);
- })
-}
-
-api.changePassword = function(req, res, next) {
- var user = res.locals.user,
- oldPassword = req.body.oldPassword,
- newPassword = req.body.newPassword,
- confirmNewPassword = req.body.confirmNewPassword;
-
- if (newPassword != confirmNewPassword)
- return res.status(401).json({err: "Password & Confirm don't match"});
-
- var salt = user.auth.local.salt,
- hashed_old_password = utils.encryptPassword(oldPassword, salt),
- hashed_new_password = utils.encryptPassword(newPassword, salt);
-
- if (hashed_old_password !== user.auth.local.hashed_password)
- return res.status(401).json({err:"Old password doesn't match"});
-
- user.auth.local.hashed_password = hashed_new_password;
- user.save(function(err, saved){
- if (err) next(err);
- res.sendStatus(200);
- })
-};
-
-// DISABLED FOR API v2
-/*api.setupPassport = function(router) {
-
- router.get('/logout', i18n.getUserLanguage, function(req, res) {
- req.logout();
- delete req.session.userId;
- res.redirect('/');
- })
-
-};*/
diff --git a/website/server/controllers/api-v2/challenges.js b/website/server/controllers/api-v2/challenges.js
deleted file mode 100644
index c5d716d88e..0000000000
--- a/website/server/controllers/api-v2/challenges.js
+++ /dev/null
@@ -1,428 +0,0 @@
-// @see ../routes for routing
-
-var _ = require('lodash');
-var nconf = require('nconf');
-var async = require('async');
-var shared = require('../../../../common');
-import {
- model as User,
-} from '../../models/user';
-import {
- model as Group,
- basicFields as basicGroupFields,
- TAVERN_ID,
-} from '../../models/group';
-import {
- model as Challenge,
-} from '../../models/challenge';
-import * as Tasks from '../../models/task';
-var logging = require('./../../libs/api-v2/logging');
-var csvStringify = require('csv-stringify');
-var utils = require('../../libs/api-v2/utils');
-var api = module.exports;
-var pushNotify = require('./pushNotifications');
-import Bluebird from 'bluebird';
-import v3MembersController from '../api-v3/members';
-/*
- ------------------------------------------------------------------------
- Challenges
- ------------------------------------------------------------------------
-*/
-
-var nameFields = 'profile.name';
-
-api.list = async function(req, res, next) {
- try {
- var user = res.locals.user;
-
- let challenges = await Challenge.find({
- $or: [
- {_id: {$in: user.challenges}}, // Challenges where the user is participating
- {group: {$in: user.getGroups()}}, // Challenges in groups where I'm a member
- {leader: user._id}, // Challenges where I'm the leader
- ],
- _id: {$ne: '95533e05-1ff9-4e46-970b-d77219f199e9'}, // remove the Spread the Word Challenge for now, will revisit when we fix the closing-challenge bug TODO revisit
- })
- .sort('-official -timestamp')
- // .populate('group', basicGroupFields)
- // .populate('leader', nameFields)
- .exec();
-
- let resChals = challenges.map(challenge => {
- let obj = challenge.toJSON();
-
- obj._isMember = user.challenges.indexOf(challenge._id) !== -1;
- return obj;
- });
-
- // Instead of populate we make a find call manually because of https://github.com/Automattic/mongoose/issues/3833
- await Bluebird.all(resChals.map((chal, index) => {
- return Bluebird.all([
- User.findById(chal.leader).select(nameFields).exec(),
- Group.findById(chal.group).select(basicGroupFields).exec(),
- ]).then(populatedData => {
- resChals[index].leader = populatedData[0] ? populatedData[0].toJSON({minimize: true}) : null;
- resChals[index].group = populatedData[1] ? populatedData[1].toJSON({minimize: true}) : null;
- });
- }));
-
- res.json(resChals);
- } catch (err) {
- next(err);
- }
-}
-
-// GET
-api.get = async function(req, res, next) {
- try {
- let user = res.locals.user;
- let challengeId = req.params.cid;
-
- let challenge = await Challenge.findById(challengeId)
- // Don't populate the group as we'll fetch it manually later
- // .populate('leader', nameFields)
- .exec();
- if (!challenge) return res.status(404).json({err: 'Challenge ' + req.params.cid + ' not found'});
-
- // Fetching basic group data
- let group = await Group.getGroup({user, groupId: challenge.group, optionalMembership: true});
- if (!group || !challenge.canView(user, group)) return res.status(404).json({err: 'Challenge ' + req.params.cid + ' not found'});
-
- let leaderRes = await User.findById(challenge.leader).select('profile.name').exec();
- leaderRes = leaderRes ? leaderRes.toJSON({minimize: true}) : null;
-
- challenge.getTransformedData({
- populateMembers: 'profile.name',
- cb (err, transformedChal) {
- transformedChal.group = group.toJSON({minimize: true});
- transformedChal.leader = leaderRes;
- transformedChal._isMember = user.challenges.indexOf(transformedChal._id) !== -1;
- res.json(transformedChal);
- }
- });
- } catch (err) {
- next(err);
- }
-}
-
-api.csv = function(req, res, next) {
- var cid = req.params.cid;
- req.params.challengeId = cid;
- v3MembersController.exportChallengeCsv.handler(req, res, next).catch(next);
-}
-
-api.getMember = function(req, res, next) {
- var cid = req.params.cid;
- var uid = req.params.uid;
-
- req.params.memberId = uid;
- req.params.challengeId = cid;
- v3MembersController.getChallengeMemberProgress.handler(req, res, next)
- .then(result => {
- let newResult = {
- profile: {
- name: result.profile.name,
- },
- habits: [],
- dailys: [],
- todos: [],
- rewards: [],
- };
-
- let tasks = result.tasks;
- tasks.forEach(task => {
- let taskObj = task.toJSONV2();
- newResult[taskObj.type + 's'].push(taskObj);
- });
-
- res.json(newResult);
- })
- .catch(next);
-}
-
-// CREATE
-api.create = async function(req, res, next){
- try {
- var user = res.locals.user;
-
- let groupId = req.body.group;
- let prize = req.body.prize;
-
- let group = await Group.getGroup({user, groupId, fields: '-chat', mustBeMember: true});
- if (!group) return res.status(404).json({err:"Group." + req.body.group + " not found"});
- if (!group.isMember(user)) return res.status(404).json({err:"Group." + req.body.group + " not found"});
-
- if (group.leaderOnly && group.leaderOnly.challenges && group.leader !== user._id) {
- return res.status(401).json({err:"Only the group leader can create challenges"});
- }
-
- if (group._id === TAVERN_ID && prize < 1) {
- return res.status(401).json({err: 'Prize must be at least 1 Gem for public challenges.'})
- }
-
- if (prize > 0) {
- let groupBalance = group.balance && group.leader === user._id ? group.balance : 0;
- let prizeCost = prize / 4;
-
- if (prizeCost > user.balance + groupBalance) {
- return res.status(401).json({err: 'You can\'t afford this prize. Purchase more gems or lower the prize amount.'});
- }
-
- if (groupBalance >= prizeCost) {
- // Group pays for all of prize
- group.balance -= prizeCost;
- } else if (groupBalance > 0) {
- // User pays remainder of prize cost after group
- let remainder = prizeCost - group.balance;
- group.balance = 0;
- user.balance -= remainder;
- } else {
- // User pays for all of prize
- user.balance -= prizeCost;
- }
- }
-
- group.challengeCount += 1;
-
- req.body.leader = user._id;
- req.body.official = user.contributor.admin && req.body.official;
- let challenge = new Challenge(Challenge.sanitize(req.body));
-
- // First validate challenge so we don't save group if it's invalid (only runs sync validators)
- let challengeValidationErrors = challenge.validateSync();
- if (challengeValidationErrors) throw challengeValidationErrors;
-
- req.body.habits = req.body.habits || [];
- req.body.todos = req.body.todos || [];
- req.body.dailys = req.body.dailys || [];
- req.body.rewards = req.body.rewards || [];
-
- var chalTasks = req.body.habits.concat(req.body.rewards)
- .concat(req.body.dailys).concat(req.body.todos)
- .map(v2Task => Tasks.Task.fromJSONV2(v2Task));
-
- chalTasks = chalTasks.map(function(task) {
- var newTask = new Tasks[task.type](Tasks.Task.sanitize(task));
- newTask.challenge.id = challenge._id;
- return newTask.save();
- });
-
- let results = await Bluebird.all([challenge.save({
- validateBeforeSave: false, // already validated
- }), group.save()].concat(chalTasks));
- let savedChal = results[0];
-
- await savedChal.syncToUser(user); // (it also saves the user)
-
- savedChal.getTransformedData({
- cb (err, transformedChal) {
- res.status(201).json(transformedChal);
- },
- });
- } catch (err) {
- next(err);
- }
-}
-
-// UPDATE
-api.update = function(req, res, next){
- var cid = req.params.cid;
- var user = res.locals.user;
- var before;
- var updatedTasks;
-
- async.waterfall([
- function(cb){
- // We first need the original challenge data, since we're going to compare against new & decide to sync users
- Challenge.findById(cid, cb);
- },
- function(chal, cb){
- if(!chal) return cb({chal: null});
-
- chal.getTasks(function(err, tasks){
- cb(err, {
- chal: chal,
- tasks: tasks
- });
- });
- },
- function(_before, cb) {
- if (!_before.chal) return cb('Challenge ' + cid + ' not found');
- if (_before.chal.leader != user._id && !user.contributor.admin) return cb({code: 401, err: shared.i18n.t('noPermissionEditChallenge', req.language)});
- // Update the challenge, since syncing will need the updated challenge. But store `before` we're going to do some
- // before-save / after-save comparison to determine if we need to sync to users
- before = {chal: _before.chal, tasks: _before.tasks};
- var chalAttrs = _.pick(req.body, 'name shortName description date'.split(' '));
- async.parallel({
- chal: function(cb1){
- Challenge.findByIdAndUpdate(cid, {$set:chalAttrs}, {new: true}, cb1);
- },
- tasks: function(cb1) {
- // Convert to map of {id: task} so we can easily match them
- var _beforeClonedTasks = _before.tasks;
- updatedTasks = _.object(_.pluck(_beforeClonedTasks, '_id'), _beforeClonedTasks);
- var newTasks = req.body.habits.concat(req.body.dailys)
- .concat(req.body.todos).concat(req.body.rewards);
-
- var newTasksObj = _.object(_.pluck(newTasks, '_id'), newTasks);
- async.forEachOf(newTasksObj, function(newTask, taskId, cb2){
- // some properties can't be changed
- newTask = Tasks.Task.sanitize(newTask);
- // we have to convert task to an object because otherwise things don't get merged correctly. Bad for performances?
- _.assign(updatedTasks[taskId], shared.ops.updateTask(updatedTasks[taskId].toObject(), {body: newTask}));
- _before.chal.updateTask(updatedTasks[taskId]).then(cb2).catch(cb2);
- }, cb1);
- }
- }, cb);
- },
- ], function(err, saved){
- if(err) {
- return err.code ? res.json(err.code, err) : next(err);
- }
-
- saved.chal.getTransformedData({cb: function(err, newChal){
- if(err) return next(err);
- res.json(newChal);
- }})
- cid = user = before = null;
- });
-}
-
-/**
- * Delete & close
- */
-api.delete = async function(req, res, next){
- try {
- var user = res.locals.user;
- var cid = req.params.cid;
-
- let challenge = await Challenge.findOne({_id: req.params.cid}).exec();
- if (!challenge) return next('Challenge ' + cid + ' not found');
- if (!challenge.canModify(user)) return next(shared.i18n.t('noPermissionCloseChallenge'));
-
- // Close channel in background, some ops are run in the background without `await`ing
- await challenge.closeChal({broken: 'CHALLENGE_DELETED'});
- res.sendStatus(200);
- } catch (err) {
- next(err);
- }
-}
-
-/**
- * Select Winner & Close
- */
-api.selectWinner = async function(req, res, next) {
- try {
- if (!req.query.uid) return res.status(401).json({err: 'Must select a winner'});
-
- let challenge = await Challenge.findOne({_id: req.params.cid}).exec();
- if (!challenge) return next('Challenge ' + req.params.cid + ' not found');
- if (!challenge.canModify(res.locals.user)) return next(shared.i18n.t('noPermissionCloseChallenge'));
-
- let winner = await User.findOne({_id: req.query.uid}).exec();
- if (!winner || winner.challenges.indexOf(challenge._id) === -1) return next('Winner ' + req.query.uid + ' not found.');
-
- // Close channel in background, some ops are run in the background without `await`ing
- await challenge.closeChal({broken: 'CHALLENGE_CLOSED', winner});
- res.respond(200, {});
- } catch (err) {
- next(err);
- }
-}
-
-api.join = async function(req, res, next){
- try {
- var user = res.locals.user;
- var cid = req.params.cid;
-
- let challenge = await Challenge.findOne({ _id: cid });
- if (!challenge) return next(shared.i18n.t('challengeNotFound'));
- if (challenge.isMember(user)) return next(shared.i18n.t('userAlreadyInChallenge'));
-
- let group = await Group.getGroup({user, groupId: challenge.group, optionalMembership: true});
- if (!group || !challenge.hasAccess(user, group)) return next(shared.i18n.t('challengeNotFound'));
-
- challenge.memberCount += 1;
-
- // Add all challenge's tasks to user's tasks and save the challenge
- await Bluebird.all([challenge.syncToUser(user), challenge.save()]);
-
- challenge.getTransformedData({
- cb (err, transformedChal) {
- transformedChal._isMember = true;
- res.json(transformedChal);
- }
- });
- } catch (e) {
- next(e);
- }
-}
-
-api.leave = async function(req, res, next){
- try {
- var user = res.locals.user;
- var cid = req.params.cid;
- // whether or not to keep challenge's tasks. strictly default to true if "keep-all" isn't provided
- var keep = (/^remove-all/i).test(req.query.keep) ? 'remove-all' : 'keep-all';
-
- let challenge = await Challenge.findOne({ _id: cid });
- if (!challenge) return next(shared.i18n.t('challengeNotFound'));
-
- let group = await Group.getGroup({user, groupId: challenge.group, fields: '_id type privacy'});
- if (!group || !challenge.canView(user, group)) return next(shared.i18n.t('challengeNotFound'));
-
- if (!challenge.isMember(user)) return next(shared.i18n.t('challengeMemberNotFound'));
-
- challenge.memberCount -= 1;
-
- // Unlink challenge's tasks from user's tasks and save the challenge
- await Bluebird.all([challenge.unlinkTasks(user, keep), challenge.save()]);
-
- challenge.getTransformedData({
- cb (err, transformedChal) {
- transformedChal._isMember = false;
- res.json(transformedChal);
- }
- });
- } catch (e) {
- next(e);
- }
-}
-
-import { removeFromArray } from '../../libs/api-v3/collectionManipulators';
-
-api.unlink = async function(req, res, next) {
- try {
- var user = res.locals.user;
- var tid = req.params.id;
- var cid;
- if (!req.query.keep)
- return res.status(400).json({err: 'Provide unlink method as ?keep=keep-all (keep, keep-all, remove, remove-all)'});
-
- let keep = req.query.keep;
- let task = await Tasks.Task.findOne({
- _id: tid,
- userId: user._id,
- }).exec();
-
- if (!task) return next(shared.i18n.t('taskNotFound'));
- if (!task.challenge.id) return next(shared.i18n.t('cantOnlyUnlinkChalTask'));
-
- cid = task.challenge.id;
- if (keep === 'keep') {
- task.challenge = {};
- await task.save();
- } else { // remove
- if (task.type !== 'todo' || !task.completed) { // eslint-disable-line no-lonely-if
- removeFromArray(user.tasksOrder[`${task.type}s`], tid);
- await Bluebird.all([user.save(), task.remove()]);
- } else {
- await task.remove();
- }
- }
-
- res.sendStatus(200);
- } catch (e) {
- next(e);
- }
-}
diff --git a/website/server/controllers/api-v2/coupon.js b/website/server/controllers/api-v2/coupon.js
deleted file mode 100644
index 17cd289bd3..0000000000
--- a/website/server/controllers/api-v2/coupon.js
+++ /dev/null
@@ -1,47 +0,0 @@
-var _ = require('lodash');
-import {
- model as Coupon,
-} from '../../models/coupon';
-var api = module.exports;
-var csvStringify = require('csv-stringify');
-var async = require('async');
-
-api.ensureAdmin = function(req, res, next) {
- if (!res.locals.user.contributor.sudo) return res.status(401).json({err:"You don't have admin access"});
- next();
-}
-
-api.generateCoupons = function(req,res,next) {
- let count = Number(req.query.count);
- Coupon.generate(req.params.event, count, function(err){
- if(err) return next(err);
- res.sendStatus(200);
- });
-}
-
-api.getCoupons = function(req,res,next) {
- var options = {sort:'seq'};
- if (req.query.limit) options.limit = req.query.limit;
- if (req.query.skip) options.skip = req.query.skip;
- Coupon.find({},{}, options, function(err,coupons){
- let output = [['code']].concat(_.map(coupons, function(c){
- return [c._id];
- }))
-
- res.set({
- 'Content-Type': 'text/csv',
- 'Content-disposition': 'attachment; filename=habitica-coupons.csv',
- });
- csvStringify(output, (err, csv) => {
- if (err) return next(err);
- res.status(200).send(csv);
- });
- });
-}
-
-api.enterCode = function(req,res,next) {
- Coupon.apply(res.locals.user,req.params.code,function(err,user){
- if (err) return res.status(400).json({err:err});
- res.json(user);
- });
-}
diff --git a/website/server/controllers/api-v2/dataexport.js b/website/server/controllers/api-v2/dataexport.js
deleted file mode 100644
index f0aad2b35c..0000000000
--- a/website/server/controllers/api-v2/dataexport.js
+++ /dev/null
@@ -1,153 +0,0 @@
-var _ = require('lodash');
-var express = require('express');
-var csvStringify = require('csv-stringify');
-var nconf = require('nconf');
-var moment = require('moment');
-var js2xmlparser = require("js2xmlparser");
-var pd = require('pretty-data').pd;
-import {
- model as User,
-} from '../../models/user';
-
-// Avatar screenshot/static-page includes
-//var Pageres = require('pageres'); //https://github.com/sindresorhus/pageres
-//var AWS = require('aws-sdk');
-//AWS.config.update({accessKeyId: nconf.get("S3:accessKeyId"), secretAccessKey: nconf.get("S3:secretAccessKey")});
-//var s3Stream = require('s3-upload-stream')(new AWS.S3()); //https://github.com/nathanpeck/s3-upload-stream
-//var bucket = nconf.get("S3:bucket");
-//var request = require('request');
-
-/*
- ------------------------------------------------------------------------
- Data export
- ------------------------------------------------------------------------
-*/
-
-var dataexport = module.exports;
-
-dataexport.history = function(req, res) {
- var user = res.locals.user;
- var output = [
- ["Task Name", "Task ID", "Task Type", "Date", "Value"]
- ];
- _.each(user.tasks, function(task) {
- _.each(task.history, function(history) {
- output.push([
- task.text,
- task.id,
- task.type,
- moment(history.date).format("MM-DD-YYYY HH:mm:ss"),
- history.value
- ]);
- });
- });
-
- res.set({
- 'Content-Type': 'text/csv',
- 'Content-disposition': 'attachment; filename=habitica-tasks-history.csv',
- });
-
- csvStringify(output, (err, csv) => {
- if (err) return next(err);
- res.status(200).send(csv);
- });
-};
-
-var userdata = function(user) {
- if(user.auth && user.auth.local) {
- delete user.auth.local.salt;
- delete user.auth.local.hashed_password;
- }
- return user;
-}
-
-dataexport.leanuser = function(req, res, next) {
- User.findOne({_id: res.locals.user._id}).lean().exec(function(err, user) {
- if (err) return res.status(500).json({err: err});
- if (_.isEmpty(user)) return res.status(401).json(NO_USER_FOUND);
- res.locals.user = user;
- return next();
- });
-};
-
-dataexport.userdata = {
- xml: function(req, res) {
- var user = userdata(res.locals.user);
- return res.xml({data: JSON.stringify(user), rootname: 'user'});
- },
- json: function(req, res) {
- var user = userdata(res.locals.user);
- return res.jsonstring(user);
- }
-}
-
-/*
- ------------------------------------------------------------------------
- Express Extensions (should be refactored into a module)
- ------------------------------------------------------------------------
-*/
-
-var expressres = express.response || http.ServerResponse.prototype;
-
-expressres.xml = function(obj, headers, status) {
- var body = '';
- this.charset = this.charset || 'utf-8';
- this.header('Content-Type', 'text/xml');
- this.header('Content-Disposition', 'attachment');
- body = pd.xml(js2xmlparser(obj.rootname,obj.data));
- return this.send(body, headers, status);
-};
-
-expressres.jsonstring = function(obj, headers, status) {
- var body = '';
- this.charset = this.charset || 'utf-8';
- this.header('Content-Type', 'application/json');
- this.header('Content-Disposition', 'attachment');
- body = pd.json(JSON.stringify(obj));
- return this.send(body, headers, status);
-};
-
-/*
- ------------------------------------------------------------------------
- Static page and image screenshot of avatar
- ------------------------------------------------------------------------
- */
-
-
-dataexport.avatarPage = function(req, res) {
- User.findById(req.params.uuid).select('stats profile items achievements preferences backer contributor').exec(function(err, user){
- res.render('avatar-static', {
- title: user.profile.name,
- env: _.defaults({user:user}, res.locals.habitrpg)
- });
- })
-};
-
-dataexport.avatarImage = function(req, res, next) {
- var filename = 'avatars/'+req.params.uuid+'.png';
- request.head('https://'+bucket+'.s3.amazonaws.com/'+filename, function(err,response,body) {
- // cache images for 10 minutes on aws, else upload a new one
- if (response.statusCode==200 && moment().diff(response.headers['last-modified'], 'minutes') < 10)
- return res.redirect(301, 'https://' + bucket + '.s3.amazonaws.com/' + filename);
- new Pageres()//{delay:1}
- .src(nconf.get('BASE_URL') + '/export/avatar-' + req.params.uuid + '.html', ['140x147'], {crop: true, filename: filename.replace('.png', '')})
- .run()
- .then(function (file) {
- var upload = s3Stream.upload({
- Bucket: bucket,
- Key: filename,
- ACL: "public-read",
- StorageClass: "REDUCED_REDUNDANCY",
- ContentType: "image/png",
- Expires: +moment().add({minutes: 3})
- });
- upload.on('error', function (err) {
- next(err);
- });
- upload.on('uploaded', function (details) {
- res.redirect(details.Location);
- });
- file[0].pipe(upload);
- }).catch(next);
- })
-};
diff --git a/website/server/controllers/api-v2/groups.js b/website/server/controllers/api-v2/groups.js
deleted file mode 100644
index 961faabb0f..0000000000
--- a/website/server/controllers/api-v2/groups.js
+++ /dev/null
@@ -1,1222 +0,0 @@
-'use strict';
-// @see ../routes for routing
-
-function clone(a) {
- return JSON.parse(JSON.stringify(a));
-}
-
-var _ = require('lodash');
-var nconf = require('nconf');
-var async = require('async');
-var Bluebird = require('bluebird');
-var utils = require('./../../libs/api-v2/utils');
-var shared = require('../../../../common');
-
-import { removeFromArray } from '../../libs/api-v3/collectionManipulators';
-
-import {
- model as User,
-} from './../../models/user';
-import {
- model as Group,
- TAVERN_ID,
-} from './../../models/group';
-import {
- model as Challenge,
-} from './../../models/challenge';
-import {
- model as EmailUnsubscription,
-} from './../../models/emailUnsubscription';
-
-var isProd = nconf.get('NODE_ENV') === 'production';
-var api = module.exports;
-var pushNotify = require('./pushNotifications');
-var analytics = utils.analytics;
-
-/*
- ------------------------------------------------------------------------
- Groups
- ------------------------------------------------------------------------
-*/
-
-var partyFields = api.partyFields = 'profile preferences stats achievements party backer contributor auth.timestamps items';
-var nameFields = 'profile.name';
-var challengeFields = '_id name';
-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
- * limited fields - and only a sampling of the members, beacuse they can be in the thousands
- * @param type: 'party' or otherwise
- * @param q: the Mongoose query we're building up
- * @param additionalFields: if we want to populate some additional field not fetched normally
- * pass it as a string, parties only
- */
-var populateQuery = function(type, q, additionalFields){
- if (type == 'party')
- q.populate('members', partyFields + (additionalFields ? (' ' + additionalFields) : ''));
- else
- q.populate(guildPopulate);
- q.populate('leader', nameFields);
- q.populate('invites', nameFields);
- q.populate({
- path: 'challenges',
- match: (type=='habitrpg') ? {_id:{$ne:'95533e05-1ff9-4e46-970b-d77219f199e9'}} : undefined, // remove the Spread the Word Challenge for now, will revisit when we fix the closing-challenge bug
- select: challengeFields,
- options: {sort: {official: -1, timestamp: -1}}
- });
- return q;
-}
-
-/**
- * Fetch groups list. This no longer returns party or tavern, as those can be requested indivdually
- * as /groups/party or /groups/tavern
- */
-api.list = function(req, res, next) {
- var user = res.locals.user;
- var groupFields = 'name description memberCount balance leader';
- var sort = '-memberCount';
- var type = req.query.type || 'party,guilds,public,tavern';
-
- async.parallel({
-
- // unecessary given our ui-router setup
- party: function(cb){
- if (!~type.indexOf('party')) return cb(null, {});
- Group.findOne({_id: user.party._id, type: 'party'})
- .select(groupFields).exec(function(err, party){
- if (err) return cb(err);
- if (!party) return cb(null, []);
- party.getTransformedData({cb: function (err, transformedParty) {
- if (err) return cb(err);
- cb(null, (transformedParty === null ? [] : [transformedParty])); // return as an array for consistent ngResource use
- }});
- });
- },
-
- guilds: function(cb) {
- if (!~type.indexOf('guilds')) return cb(null, []);
- Group.find({_id: {'$in': user.guilds}, type:'guild'})
- .select(groupFields).sort(sort).exec(function (err, guilds) {
- if (err) return cb(err);
- async.map(guilds, function (guild, cb1) {
- guild.getTransformedData({cb: cb1})
- }, function(err, guildsTransormed) {
- cb(err, guildsTransormed);
- });
- });
- },
-
- 'public': function(cb) {
- if (!~type.indexOf('public')) return cb(null, []);
- Group.find({privacy: 'public'})
- .select(groupFields)
- .sort(sort)
- .lean()
- .exec(function(err, groups){
- if (err) return cb(err);
- _.each(groups, function(g){
- // To save some client-side performance, don't send down the full members arr, just send down temp var _isMember
- if (user.guilds.indexOf(g._id) !== -1) g._isMember = true;
- });
- cb(null, groups);
- });
- },
-
- // unecessary given our ui-router setup
- tavern: function(cb) {
- if (!~type.indexOf('tavern')) return cb(null, {});
- Group.findById(TAVERN_ID).select(groupFields).exec(function(err, tavern){
- if (err) return cb(err);
- tavern.getTransformedData({cb: function (err, transformedTavern) {
- if (err) return cb(err);
- cb(null, ([transformedTavern])); // return as an array for consistent ngResource use
- }});
- });
- }
-
- }, function(err, results){
- if (err) return next(err);
- // ngResource expects everything as arrays. We used to send it down as a structured object: {public:[], party:{}, guilds:[], tavern:{}}
- // but unfortunately ngResource top-level attrs are considered the ngModels in the list, so we had to do weird stuff and multiple
- // requests to get it to work properly. Instead, we're not depending on the client to do filtering / organization, and we're
- // just sending down a merged array. Revisit
- var arr = _.reduce(results, function(m,v){
- if (_.isEmpty(v)) return m;
- return m.concat(_.isArray(v) ? v : [v]);
- }, [])
- res.json(arr);
-
- user = groupFields = sort = type = null;
- })
-};
-
-/**
- * Get group
- * TODO: implement requesting fields ?fields=chat,members
- */
-api.get = function(req, res, next) {
- var user = res.locals.user;
- var gid = req.params.gid;
- let isUserGuild = user.guilds.indexOf(gid) !== -1;
-
- var q;
-
- if (gid === 'party' || gid === user.party._id) {
- q = Group.findOne({_id: user.party._id, type: 'party'})
- } else {
-
- if (isUserGuild) {
- q = Group.findOne({type: 'guild', _id: gid});
- } else if (gid === 'habitrpg') {
- q = Group.findOne({_id: TAVERN_ID});
- } else {
- q = Group.findOne({type: 'guild', privacy: 'public', _id: gid});
- }
- }
-
- q.populate('leader', nameFields);
-
- //populateQuery(gid, q);
- q.exec(function(err, group){
- if (err) return next(err);
- if(!group){
- if(gid !== 'party') return res.status(404).json({err: shared.i18n.t('messageGroupNotFound')});
-
- // Don't send a 404 when querying for a party even if it doesn't exist
- // so that users with no party don't get a 404 on every access to the site
- return res.json(group);
- }
-
- group.getTransformedData({
- cb: function (err, transformedGroup) {
- if (err) return next(err);
-
- if (!user.contributor.admin) {
- _purgeFlagInfoFromChat(transformedGroup, user);
- }
-
- //Since we have a limit on how many members are populate to the group, we want to make sure the user is always in the group
- var userInGroup = _.find(transformedGroup.members, function(member){ return member._id == user._id; });
- if ((gid === 'party' || isUserGuild) && !userInGroup) {
- transformedGroup.members.splice(0,1);
- transformedGroup.members.push(user);
- }
-
- res.json(transformedGroup);
- },
- populateMembers: group.type === 'party' ? partyFields : nameFields,
- populateInvites: nameFields,
- populateChallenges: challengeFields,
- });
- });
-};
-
-
-api.create = function(req, res, next) {
- var group = new Group(req.body);
- var user = res.locals.user;
- //group.members = [user._id];
- group.leader = user._id;
- if (!group.name) group.name = 'group name';
-
- if(group.type === 'guild'){
- user.guilds.push(group._id);
- if(user.balance < 1) return res.status(401).json({err: shared.i18n.t('messageInsufficientGems')});
-
- group.balance = 1;
- user.balance--;
-
- async.waterfall([
- function(cb){user.save(cb)},
- function(saved,ct,cb){group.save(cb)},
- function(saved,ct,cb){
- saved.getTransformedData({
- populateMembers: nameFields,
- cb,
- })
- }
- ],function(err,groupTransformed){
- if (err) return next(err);
- res.json(groupTransformed);
- group = user = null;
- });
-
- } else{
- if (user.party._id) return res.status(400).json({err:shared.i18n.t('messageGroupAlreadyInParty')});
- user.party._id = group._id;
- user.save(function (err) {
- if (err) return next(err);
- group.save(function(err, saved) {
- if (err) return next(err);
- saved.getTransformedData({
- populateMembers: nameFields,
- cb (err, groupTransformed) {
- res.json(groupTransformed);
- },
- });
- });
- })
- }
-}
-
-api.update = function(req, res, next) {
- var group = res.locals.group;
- var user = res.locals.user;
-
- if(group.leader !== user._id)
- return res.status(401).json({err: shared.i18n.t('messageGroupOnlyLeaderCanUpdate')});
-
- 'name description logo logo leaderMessage leader leaderOnly'.split(' ').forEach(function(attr){
- if (req.body[attr]) group[attr] = req.body[attr];
- });
-
- group.save(function(err, saved){
- if (err) return next(err);
-
- res.sendStatus(204);
- });
-}
-
-// TODO remove from api object?
-api.attachGroup = function(req, res, next) {
- var user = res.locals.user;
- var gid = req.params.gid === 'party' ? user.party._id : req.params.gid;
- if (gid === 'habitrpg') gid = TAVERN_ID;
-
- let q = Group.findOne({_id: gid})
-
- q.exec(function(err, group){
- if(err) return next(err);
- if(!group) return res.status(404).json({err: shared.i18n.t('messageGroupNotFound')});
-
- if (!user.contributor.admin) {
- _purgeFlagInfoFromChat(group, user);
- }
-
- res.locals.group = group;
- next();
- });
-}
-
-api.getChat = function(req, res, next) {
- // TODO: This code is duplicated from api.get - pull it out into a function to remove duplication.
- var user = res.locals.user;
- var gid = req.params.gid;
-
- var q;
- let isUserGuild = user.guilds.indexOf(gid) !== -1;
-
- if (gid === 'party' || gid === user.party._id) {
- q = Group.findOne({_id: user.party._id, type: 'party'})
- } else {
- if (isUserGuild) {
- q = Group.findOne({type: 'guild', _id: gid});
- } else if (gid === 'habitrpg') {
- q = Group.findOne({_id: TAVERN_ID});
- } else {
- q = Group.findOne({type: 'guild', privacy: 'public', _id: gid});
- }
- }
-
- q.exec(function(err, group){
- if (err) return next(err);
- if (!group && gid!=='party') return res.status(404).json({err: shared.i18n.t('messageGroupNotFound')});
-
- res.json(res.locals.group.chat);
- gid = null;
- });
-};
-
-/**
- * TODO make this it's own ngResource so we don't have to send down group data with each chat post
- */
-api.postChat = function(req, res, next) {
- if(!req.query.message) {
- return res.status(400).json({err: shared.i18n.t('messageGroupChatBlankMessage')});
- } else {
- var user = res.locals.user
- var group = res.locals.group;
- if (group.type!='party' && user.flags.chatRevoked) return res.status(401).json({err:'Your chat privileges have been revoked.'});
- var lastClientMsg = req.query.previousMsg;
- var chatUpdated = (lastClientMsg && group.chat && group.chat[0] && group.chat[0].id !== lastClientMsg) ? true : false;
-
- group.sendChat(req.query.message, user); // TODO this should be body, but ngResource is funky
-
- if (group.type === 'party') {
- user.party.lastMessageSeen = group.chat[0].id;
- user.save();
- }
-
- group.save(function(err, saved){
- if (err) return next(err);
- chatUpdated ? res.json({chat: group.chat}) : res.json({message: saved.chat[0]});
- group = chatUpdated = null;
- });
- }
-}
-
-api.deleteChatMessage = function(req, res, next){
- var user = res.locals.user
- var group = res.locals.group;
- var message = _.find(group.chat, {id: req.params.messageId});
-
- if(!message) return res.status(404).json({err: "Message not found!"});
-
- if(user._id !== message.uuid && !(user.backer && user.contributor.admin))
- return res.status(401).json({err: "Not authorized to delete this message!"})
-
- var lastClientMsg = req.query.previousMsg;
- var chatUpdated = (lastClientMsg && group.chat && group.chat[0] && group.chat[0].id !== lastClientMsg) ? true : false;
-
- Group.update({_id:group._id}, {$pull:{chat:{id: req.params.messageId}}}, function(err){
- if(err) return next(err);
- chatUpdated ? res.json({chat: group.chat}) : res.sendStatus(204);
- group = chatUpdated = null;
- });
-}
-
-api.flagChatMessage = function(req, res, next){
- var user = res.locals.user
- var group = res.locals.group;
- var message = _.find(group.chat, {id: req.params.mid});
-
- if(!message) return res.status(404).json({err: shared.i18n.t('messageGroupChatNotFound')});
- if(message.uuid == user._id) return res.status(401).json({err: shared.i18n.t('messageGroupChatFlagOwnMessage')});
-
- User.findOne({_id: message.uuid}, {auth: 1}, function(err, author){
- if(err) return next(err);
-
- // Log user ids that have flagged the message
- if(!message.flags) message.flags = {};
- if(message.flags[user._id] && !user.contributor.admin) return res.status(401).json({err: shared.i18n.t('messageGroupChatFlagAlreadyReported')});
- message.flags[user._id] = true;
-
- // Log total number of flags (publicly viewable)
- if(!message.flagCount) message.flagCount = 0;
- if(user.contributor.admin){
- // Arbitraty amount, higher than 2
- message.flagCount = 5;
- } else {
- message.flagCount++
- }
-
- Group.update({_id: group._id, 'chat.id': message.id}, {'$set': {
- 'chat.$.flags': message.flags,
- 'chat.$.flagCount': message.flagCount,
- }}, function(err) {
- if (err) return next(err);
-
- utils.txnEmail(FLAG_REPORT_EMAILS, 'flag-report-to-mods', [
- {name: "MESSAGE_TIME", content: (new Date(message.timestamp)).toString()},
- {name: "MESSAGE_TEXT", content: message.text},
-
- {name: "REPORTER_USERNAME", content: user.profile.name},
- {name: "REPORTER_UUID", content: user._id},
- {name: "REPORTER_EMAIL", content: user.auth.local ? user.auth.local.email : ((user.auth.facebook && user.auth.facebook.emails && user.auth.facebook.emails[0]) ? user.auth.facebook.emails[0].value : null)},
- {name: "REPORTER_MODAL_URL", content: "/static/front/#?memberId=" + user._id},
-
- {name: "AUTHOR_USERNAME", content: message.user},
- {name: "AUTHOR_UUID", content: message.uuid},
- {name: "AUTHOR_EMAIL", content: author.auth.local ? author.auth.local.email : ((author.auth.facebook && author.auth.facebook.emails && author.auth.facebook.emails[0]) ? author.auth.facebook.emails[0].value : null)},
- {name: "AUTHOR_MODAL_URL", content: "/static/front/#?memberId=" + message.uuid},
-
- {name: "GROUP_NAME", content: group.name},
- {name: "GROUP_TYPE", content: group.type},
- {name: "GROUP_ID", content: group._id},
- {name: "GROUP_URL", content: group._id == TAVERN_ID ? '/#/options/groups/tavern' : (group.type === 'guild' ? ('/#/options/groups/guilds/' + group._id) : 'party')},
- ]);
-
- return res.sendStatus(204);
- });
- });
-}
-
-api.clearFlagCount = function(req, res, next){
- var user = res.locals.user
- var group = res.locals.group;
- var message = _.find(group.chat, {id: req.params.mid});
-
- if(!message) return res.status(404).json({err: shared.i18n.t('messageGroupChatNotFound')});
-
- if(user.contributor.admin){
- message.flagCount = 0;
-
- Group.update({_id: group._id, 'chat.id': message.id}, {'$set': {
- 'chat.$.flagCount': message.flagCount,
- }}, function(err) {
- if(err) return next(err);
- return res.sendStatus(204);
- });
- } else {
- return res.status(401).json({err: shared.i18n.t('messageGroupChatAdminClearFlagCount')})
- }
-}
-
-api.seenMessage = function(req,res,next){
- // Skip the auth step, we want this to be fast. If !found with uuid/token, then it just doesn't save
- // Check for req.params.gid to exist
- if(req.params.gid){
- var update = {$unset:{}};
- update['$unset']['newMessages.'+req.params.gid] = '';
- User.update({_id:req.headers['x-api-user'], apiToken:req.headers['x-api-key']},update).exec();
- }
- res.sendStatus(200);
-}
-
-api.likeChatMessage = function(req, res, next) {
- var user = res.locals.user;
- var group = res.locals.group;
- var message = _.find(group.chat, {id: req.params.mid});
-
- if (!message) return res.status(404).json({err: shared.i18n.t('messageGroupChatNotFound')});
- if (message.uuid == user._id) return res.status(401).json({err: shared.i18n.t('messageGroupChatLikeOwnMessage')});
- if (!message.likes) message.likes = {};
- if (message.likes[user._id]) {
- delete message.likes[user._id];
- } else {
- message.likes[user._id] = true;
- }
-
- Group.update({_id: group._id, 'chat.id': message.id}, {'$set': {
- 'chat.$.likes': message.likes
- }}, function(err) {
- if (err) return next(err);
- return res.send(group.chat);
- });
-}
-
-api.join = function(req, res, next) {
- var user = res.locals.user,
- group = res.locals.group,
- isUserInvited = false;
-
- if (group.type == 'party' && group._id == (user.invitations && user.invitations.party && user.invitations.party.id)) {
- User.update({_id:user.invitations.party.inviter}, {$inc:{'items.quests.basilist':1}}).exec(); // Reward inviter
- user.invitations.party = {}; // Clear invite
- user.markModified('invitations.party');
- user.party._id = group._id;
- user.save();
- // invite new user to pending quest
- if (group.quest.key && !group.quest.active) {
- User.update({_id:user._id},{$set: {'party.quest.RSVPNeeded': true, 'party.quest.key': group.quest.key}}).exec();
- group.quest.members[user._id] = undefined;
- group.markModified('quest.members');
- }
- isUserInvited = true;
- } else if (group.type == 'guild') {
- var i = _.findIndex(user.invitations.guilds, {id:group._id});
- if (~i){
- isUserInvited = true;
- user.invitations.guilds.splice(i,1);
- user.guilds.push(group._id);
- user.save();
- }else{
- isUserInvited = group.privacy === 'private' ? false : true;
- if (isUserInvited) {
- user.guilds.push(group._id);
- user.save();
- }
- }
- }
-
- if(!isUserInvited) return res.status(401).json({err: shared.i18n.t('messageGroupRequiresInvite')});
-
- if (group.memberCount === 0) {
- group.leader = user._id;
- }
-
- /*if (!_.contains(group.members, user._id)){
- if (group.members.length === 0) {
- group.leader = user._id;
- }
-
- group.members.push(user._id);
-
- if (group.invites.length > 0) {
- group.invites.splice(_.indexOf(group.invites, user._id), 1);
- }
- }*/
-
- async.series([
- function(cb){
- group.save(cb);
- },
- function(cb){
- group.getTransformedData({
- cb,
- populateMembers: group.type === 'party' ? partyFields : nameFields,
- populateInvites: nameFields,
- populateChallenges: challengeFields,
- })
- }
- ], function(err, results){
- if (err) return next(err);
- // Return the group? Or not?
- res.json(results[1]);
- group = null;
- });
-}
-
-api.leave = function(req, res, next) {
- var user = res.locals.user;
- var group = res.locals.group;
-
- if (group.type === 'party') {
- if (group.quest && group.quest.leader === user._id) {
- return res.json(403, 'You cannot leave your party when you have started a quest. Abort the quest first.');
- }
-
- if (group.quest && group.quest.active && group.quest.members && group.quest.members[user._id]) {
- return res.json(403, 'You cannot leave party during an active quest. Please leave the quest first.');
- }
- }
-
- // When removing the user from challenges, should we keep the tasks?
- var keep = (/^remove-all/i).test(req.query.keep) ? 'remove-all' : 'keep-all';
-
- group.leave(user, keep)
- .then(() => res.sendStatus(204))
- .catch(next);
-};
-
-var inviteByUUIDs = function(uuids, group, req, res, next){
- async.each(uuids, function(uuid, cb){
- User.findById(uuid, function(err,invite){
- if (err) return cb(err);
- if (!invite)
- return cb({code:400,err:'User with id "' + uuid + '" not found'});
- if (group.type == 'guild') {
- if (_.contains(invite.guilds, group._id))
- return cb({code:400, err: "User already in that group"});
- if (invite.invitations && invite.invitations.guilds && _.find(invite.invitations.guilds, {id:group._id}))
- return cb({code:400, err:"User already invited to that group"});
- sendInvite();
- } else if (group.type == 'party') {
- if (invite.invitations && !_.isEmpty(invite.invitations.party))
- return cb({code: 400,err:"User already pending invitation."});
- if (invite.party && invite.party._id) {
- return cb({code: 400, err: "User already in a party."})
- }
- sendInvite();
- }
-
- function sendInvite (){
- if(group.type === 'guild'){
- invite.invitations.guilds.push({id: group._id, name: group.name, inviter:res.locals.user._id});
-
- pushNotify.sendNotify(invite, shared.i18n.t('invitedGuild'), group.name);
- }else{
- //req.body.type in 'guild', 'party'
- invite.invitations.party = {id: group._id, name: group.name, inviter:res.locals.user._id};
-
- pushNotify.sendNotify(invite, shared.i18n.t('invitedParty'), group.name);
- }
-
- //group.invites.push(invite._id);
-
- async.series([
- function(cb){
- invite.save(cb);
- }
- ], function(err, results){
- if (err) return cb(err);
-
- if(invite.preferences.emailNotifications['invited' + (group.type == 'guild' ? 'Guild' : 'Party')] !== false){
- var inviterVars = utils.getUserInfo(res.locals.user, ['name', 'email']);
- var emailVars = [
- {name: 'INVITER', content: inviterVars.name}
- ];
-
- if(group.type == 'guild'){
- emailVars.push(
- {name: 'GUILD_NAME', content: group.name},
- {name: 'GUILD_URL', content: '/#/options/groups/guilds/public'}
- );
- }else{
- emailVars.push(
- {name: 'PARTY_NAME', content: group.name},
- {name: 'PARTY_URL', content: '/#/options/groups/party'}
- )
- }
-
- utils.txnEmail(invite, ('invited-' + (group.type == 'guild' ? 'guild' : 'party')), emailVars);
- }
-
- cb();
- });
- }
- });
- }, function(err){
- if(err) return err.code ? res.status(err.code).json({err: err.err}) : next(err);
-
- async.series([
- function(cb) {
- group.save(cb);
- },
- function(cb) {
- // TODO pass group from save above don't find it again, or you have to find it again in order to run populate?
- Group.findById(group._id).populate('leader', nameFields).exec(function (err, savedGroup) {
- if (err) return next(err);
- savedGroup.getTransformedData({
- cb: function (err, transformedGroup) {
- if (err) return next(err);
- res.json(transformedGroup);
- },
- populateMembers: savedGroup.type === 'party' ? partyFields : nameFields,
- populateInvites: nameFields,
- populateChallenges: challengeFields,
- })
- });
- }
- ]);
- });
-};
-
-var inviteByEmails = function(invites, group, req, res, next){
- var usersAlreadyRegistered = [];
-
- async.each(invites, function(invite, cb){
- if (invite.email) {
- User.findOne({$or: [
- {'auth.local.email': invite.email},
- {'auth.facebook.emails.value': invite.email}
- ]}).select({_id: true, 'preferences.emailNotifications': true})
- .exec(function(err, userToContact){
- if(err) return next(err);
-
- if(userToContact){
- usersAlreadyRegistered.push(userToContact._id);
- return cb();
- }
-
- // yeah, it supports guild too but for backward compatibility we'll use partyInvite as query
-
- var link = '?partyInvite='+ utils.encrypt(JSON.stringify({id:group._id, inviter:res.locals.user._id, name:group.name}));
-
- var inviterVars = utils.getUserInfo(res.locals.user, ['name', 'email']);
- var variables = [
- {name: 'LINK', content: link},
- {name: 'INVITER', content: req.body.inviter || inviterVars.name}
- ];
-
- if(group.type == 'guild'){
- variables.push({name: 'GUILD_NAME', content: group.name});
- }
-
- // TODO implement "users can only be invited once"
- // Check for the email address not to be unsubscribed
- EmailUnsubscription.findOne({email: invite.email}, function(err, unsubscribed){
- if(err) return cb(err);
- if(unsubscribed) return cb();
-
- utils.txnEmail(invite, ('invite-friend' + (group.type == 'guild' ? '-guild' : '')), variables);
-
- cb();
- });
- });
- }else{
- cb();
- }
- }, function(err){
- if(err) return err.code ? res.status(err.code).json({err: err.err}) : next(err);
-
- if (usersAlreadyRegistered.length > 0){
- inviteByUUIDs(usersAlreadyRegistered, group, req, res, next);
- } else{
-
- // Send only status code down the line because it doesn't need
- // info on invited users since they are not yet registered
- res.status(200).json({});
- }
- });
-};
-
-api.invite = function(req, res, next){
- var group = res.locals.group;
- let userParty = res.locals.user.party && res.locals.user.party._id;
- let userGuilds = res.locals.user.guilds;
-
- if (group.type === 'party' && userParty !== group._id) {
- return res.status(401).json({err: "Only a member can invite new members!"});
- }
-
- if (group.type === 'guild' && group.privacy === 'private' && !_.contains(userGuilds, group._id)) {
- return res.status(401).json({err: "Only a member can invite new members!"});
- }
-
- if (req.body.uuids) {
- inviteByUUIDs(req.body.uuids, group, req, res, next);
- } else if (req.body.emails) {
- inviteByEmails(req.body.emails, group, req, res, next)
- } else {
- return res.status(400).json({err: "Can only invite by email or uuid"});
- }
-}
-
-api.removeMember = function(req, res, next){
- var group = res.locals.group;
- var uuid = req.query.uuid;
- var message = req.query.message;
- var user = res.locals.user;
-
- // Send an email to the removed user with an optional message from the leader
- var sendMessage = function(removedUser){
- if(removedUser.preferences.emailNotifications.kickedGroup !== false){
- utils.txnEmail(removedUser, ('kicked-from-' + group.type), [
- {name: 'GROUP_NAME', content: group.name},
- {name: 'MESSAGE', content: message},
- {name: 'GUILDS_LINK', content: '/#/options/groups/guilds/public'},
- {name: 'PARTY_WANTED_GUILD', content: '/#/options/groups/guilds/f2db2a7f-13c5-454d-b3ee-ea1f5089e601'}
- ]);
- }
- }
-
- if(group.leader !== user._id){
- return res.status(401).json({err: "Only group leader can remove a member!"});
- }
-
- if(user._id === uuid){
- return res.status(401).json({err: "You cannot remove yourself!"});
- }
-
- User.findById(uuid, function(err, removedUser){
- if (err) return next(err);
- let isMember = group._id === removedUser.party._id || _.contains(removedUser.guilds, group._id);
- let isInvited = group._id === removedUser.invitations.party._id || !!_.find(removedUser.invitations.guilds, {id: group._id});
-
- if(isMember){
- var update = {};
- if (group.quest && group.quest.leader === uuid) {
- update['$set'] = {
- quest: { key: null, leader: null }
- };
- } else if(group.quest && group.quest.members){
- // remove member from quest
- update['$unset'] = {};
- update['$unset']['quest.members.' + uuid] = "";
- }
- update['$inc'] = {memberCount: -1};
- Group.update({_id:group._id},update, function(err, saved){
- if (err) return next(err);
-
- sendMessage(removedUser);
-
- //Mark removed users messages as seen
- var update = {$unset:{}};
- if (group.type === 'guild') {
- update.$pull = {guilds: group._id};
- } else {
- update.$unset.party = true;
- }
- update.$unset['newMessages.' + group._id] = '';
- if (group.quest && group.quest.active && group.quest.leader === uuid) {
- update['$inc'] = {};
- update['$inc']['items.quests.' + group.quest.key] = 1;
- }
- User.update({_id: removedUser._id, apiToken: removedUser.apiToken}, update).exec();
-
- // Sending an empty 204 because Group.update doesn't return the group
- // see http://mongoosejs.com/docs/api.html#model_Model.update
- group = uuid = null;
- return res.sendStatus(204);
- });
- }else if(isInvited){
- var invitations = removedUser.invitations;
- if(group.type === 'guild'){
- invitations.guilds.splice(_.indexOf(invitations.guilds, group._id), 1);
- }else{
- invitations.party = undefined;
- }
-
- async.series([
- function(cb){
- removedUser.save(cb);
- },
- ], function(err, results){
- if (err) return next(err);
-
- // Sending an empty 204 because Group.update doesn't return the group
- // see http://mongoosejs.com/docs/api.html#model_Model.update
- sendMessage(removedUser);
- group = uuid = null;
- return res.sendStatus(204);
- });
- }else{
- group = uuid = null;
- return res.status(400).json({err: "User not found among group's members!"});
- }
- });
-}
-
-// ------------------------------------
-// Quests
-// ------------------------------------
-function canStartQuestAutomatically (group) {
- // If all members are either true (accepted) or false (rejected) return true
- // If any member is null/undefined (undecided) return false
- return _.every(group.quest.members, _.isBoolean);
-}
-
-function questStart(req, res, next) {
- var group = res.locals.group;
- var force = req.query.force;
-
- // if (group.quest.active) return res.status(400).json({err:'Quest already began.'});
- // temporarily send error email, until we know more about this issue (then remove below, uncomment above).
- if (group.quest.active) return next('Quest already began.');
-
- group.markModified('quest');
-
- // Not ready yet, wait till everyone's accepted, rejected, or we force-start
- var statuses = _.values(group.quest.members);
- if (!force && (~statuses.indexOf(undefined) || ~statuses.indexOf(null))) {
- return group.save(function(err,saved){
- if (err) return next(err);
- res.json(saved);
- })
- }
-
- var parallel = [],
- questMembers = {},
- key = group.quest.key,
- quest = shared.content.quests[key],
- collected = quest.collect ? _.transform(quest.collect, function(m,v,k){m[k]=0}) : {};
-
- _.each(group.members, function(m){
- var updates = {$set:{},$inc:{'_v':1}};
- if (m == group.quest.leader)
- updates['$inc']['items.quests.'+key] = -1;
- if (group.quest.members[m] == true) {
- // See https://github.com/HabitRPG/habitrpg/issues/2168#issuecomment-31556322 , we need to *not* reset party.quest.progress.up
- //updates['$set']['party.quest'] = Group.cleanQuestProgress({key:key,progress:{collect:collected}});
- updates['$set']['party.quest.key'] = key;
- updates['$set']['party.quest.progress.down'] = 0;
- updates['$set']['party.quest.progress.collect'] = collected;
- updates['$set']['party.quest.completed'] = null;
- questMembers[m] = true;
-
- User.findOne({_id: m}, {pushDevices: 1}, function(err, user){
- pushNotify.sendNotify(user, "HabitRPG", shared.i18n.t('questStarted') + ": "+ quest.text() );
- });
- } else {
- updates['$set']['party.quest'] = Group.cleanQuestProgress();
- }
-
- parallel.push(function(cb2){
- User.update({_id:m},updates,cb2);
- });
- });
-
- group.quest.active = true;
- if (quest.boss) {
- group.quest.progress.hp = quest.boss.hp;
- if (quest.boss.rage) group.quest.progress.rage = 0;
- } else {
- group.quest.progress.collect = collected;
- }
- group.quest.members = questMembers;
- group.markModified('quest'); // members & progress.collect are both Mixed types
- parallel.push(function(cb2){group.save(cb2)});
-
- parallel.push(function(cb){
- // Fetch user.auth to send email, then remove it from data sent to the client
- populateQuery(group.type, Group.findById(group._id), 'auth.facebook auth.local').exec(cb);
- });
-
- async.parallel(parallel,function(err, results){
- if (err) return next(err);
-
- var lastIndex = results.length -1;
- var groupClone = clone(group);
-
- groupClone.members = results[lastIndex].members;
-
- // Send quest started email
- var usersToEmail = groupClone.members.filter(function(user){
- return (
- user.preferences.emailNotifications.questStarted !== false &&
- user._id !== res.locals.user._id &&
- group.quest.members[user._id] == true
- )
- });
-
- utils.txnEmail(usersToEmail, 'quest-started', [
- {name: 'PARTY_URL', content: '/#/options/groups/party'}
- ]);
-
- _.each(groupClone.members, function(user){
- // Remove sensitive data from what is sent to the public
- // but after having sent emails as they are needed
- user.auth.facebook = undefined;
- user.auth.local = undefined;
- });
-
- group = null;
-
- return res.json(groupClone);
- });
-}
-
-api.questAccept = function(req, res, next) {
- var group = res.locals.group;
- var user = res.locals.user;
- var key = req.query.key;
-
- if (!group || group.type !== 'party') return res.status(400).json({err: "Must be in a party to start quests."});
-
- // If ?key=xxx is provided, we're starting a new quest and inviting the party. Otherwise, we're a party member accepting the invitation
- if (key) {
- var quest = shared.content.quests[key];
- if (!quest) return res.status(404).json({err:'Quest ' + key + ' not found'});
- if (quest.lvl && user.stats.lvl < quest.lvl) return res.status(400).json({err: "You must be level "+quest.lvl+" to begin this quest."});
- if (group.quest.key) return res.status(400).json({err: 'Your party is already on a quest. Try again when the current quest has ended.'});
- if (!user.items.quests[key]) return res.status(400).json({err: "You don't own that quest scroll"});
-
- let members;
-
- User.find({
- 'party._id': group._id,
- _id: {$ne: user._id},
- }).select('auth.facebook auth.local preferences.emailNotifications profile.name pushDevices')
- .exec().then(membersF => {
- members = membersF;
-
- group.markModified('quest');
- group.quest.key = key;
- group.quest.leader = user._id;
- group.quest.members = {};
- group.quest.members[user._id] = true;
-
- user.party.quest.RSVPNeeded = false;
- user.party.quest.key = key;
-
- return User.update({
- 'party._id': group._id,
- _id: {$ne: user._id},
- }, {
- $set: {
- 'party.quest.RSVPNeeded': true,
- 'party.quest.key': key,
- },
- }, {multi: true}).exec();
- }).then(() => {
- _.each(members, (member) => {
- group.quest.members[member._id] = null;
- });
-
- if (canStartQuestAutomatically(group)) {
- group.startQuest(user).then(() => {
- return Bluebird.all([group.save(), user.save()])
- })
- .then(results => {
- results[0].getTransformedData({
- cb (err, groupTransformed) {
- if (err) return next(err);
- res.json(groupTransformed);
- },
- populateMembers: group.type === 'party' ? partyFields : nameFields,
- });
- })
- .catch(next);
-
- } else {
- Bluebird.all([group.save(), user.save()])
- .then(results => {
- results[0].getTransformedData({
- cb (err, groupTransformed) {
- if (err) return next(err);
- res.json(groupTransformed);
- },
- populateMembers: group.type === 'party' ? partyFields : nameFields,
- });
- })
- .catch(next);
- }
- }).catch(next);
-
- // Party member accepting the invitation
- } else {
- group.markModified('quest');
- group.quest.members[user._id] = true;
- user.party.quest.RSVPNeeded = false;
-
- if (canStartQuestAutomatically(group)) {
- group.startQuest(user).then(() => {
- return Bluebird.all([group.save(), user.save()])
- })
- .then(results => {
- results[0].getTransformedData({
- cb (err, groupTransformed) {
- if (err) return next(err);
- res.json(groupTransformed);
- },
- populateMembers: group.type === 'party' ? partyFields : nameFields,
- });
- })
- .catch(next);
-
- } else {
- Bluebird.all([group.save(), user.save()])
- .then(results => {
- results[0].getTransformedData({
- cb (err, groupTransformed) {
- if (err) return next(err);
- res.json(groupTransformed);
- },
- populateMembers: group.type === 'party' ? partyFields : nameFields,
- });
- })
- .catch(next);
- }
- }
-}
-
-api.questReject = function(req, res, next) {
- var group = res.locals.group;
- var user = res.locals.user;
-
- group.quest.members[user._id] = false;
- group.markModified('quest.members');
-
- user.party.quest = Group.cleanQuestProgress();
- user.markModified('party.quest');
-
- if (canStartQuestAutomatically(group)) {
- group.startQuest(user).then(() => {
- return Bluebird.all([group.save(), user.save()])
- })
- .then(results => {
- results[0].getTransformedData({
- cb (err, groupTransformed) {
- if (err) return next(err);
- res.json(groupTransformed);
- },
- populateMembers: group.type === 'party' ? partyFields : nameFields,
- });
- })
- .catch(next);
-
- } else {
- Bluebird.all([group.save(), user.save()])
- .then(results => {
- results[0].getTransformedData({
- cb (err, groupTransformed) {
- if (err) return next(err);
- res.json(groupTransformed);
- },
- populateMembers: group.type === 'party' ? partyFields : nameFields,
- });
- })
- .catch(next);
- }
-}
-
-api.questCancel = function(req, res, next){
- var group = res.locals.group;
-
- group.quest = Group.cleanGroupQuest();
- group.markModified('quest');
-
- Bluebird.all([
- group.save(),
- User.update(
- {'party._id': group._id},
- {$set: {'party.quest': Group.cleanQuestProgress()}},
- {multi: true}
- ),
- ]).then(results => {
- results[0].getTransformedData({
- cb (err, groupTransformed) {
- if (err) return next(err);
- res.json(groupTransformed);
- },
- populateMembers: group.type === 'party' ? partyFields : nameFields,
- });
- }).catch(next);
-
- // Cancel a quest BEFORE it has begun (i.e., in the invitation stage)
- // Quest scroll has not yet left quest owner's inventory so no need to return it.
- // Do not wipe quest progress for members because they'll want it to be applied to the next quest that's started.
-}
-
-api.questAbort = function(req, res, next){
- var group = res.locals.group;
-
- let memberUpdates = User.update({
- 'party._id': group._id,
- }, {
- $set: {'party.quest': Group.cleanQuestProgress()},
- $inc: {_v: 1}, // TODO update middleware
- }, {multi: true}).exec();
-
- let questLeaderUpdate = User.update({
- _id: group.quest.leader,
- }, {
- $inc: {
- [`items.quests.${group.quest.key}`]: 1, // give back the quest to the quest leader
- },
- }).exec();
-
- group.quest = Group.cleanGroupQuest();
- group.markModified('quest');
-
- Bluebird.all([group.save(), memberUpdates, questLeaderUpdate])
- .then(results => {
- results[0].getTransformedData({
- cb (err, groupTransformed) {
- if (err) return next(err);
- res.json(groupTransformed);
- },
- populateMembers: group.type === 'party' ? partyFields : nameFields,
- });
- })
- .catch(next);
-}
-
-api.questLeave = function(req, res, next) {
- // Non-member leave quest while still in progress
- var group = res.locals.group;
- var user = res.locals.user;
-
- if (!(group.quest && group.quest.active)) {
- return res.status(404).json({ err: 'No active quest to leave' });
- }
-
- if (!(group.quest.members && group.quest.members[user._id])) {
- return res.status(403).json({ err: 'You are not part of the quest' });
- }
-
- if (group.quest.leader === user._id) {
- return res.status(403).json({ err: 'Quest leader cannot leave quest' });
- }
-
- group.quest.members[user._id] = false;
- group.markModified('quest.members');
-
- user.party.quest = Group.cleanQuestProgress();
- user.markModified('party.quest');
-
- var groupSavePromise = Bluebird.promisify(group.save, {context: group});
- var userSavePromise = Bluebird.promisify(user.save, {context: user});
-
- Bluebird.all([groupSavePromise(), userSavePromise()])
- .done(function(values) {
- return res.sendStatus(204);
- }, function(error) {
- return next(error);
- });
-}
-
-function _purgeFlagInfoFromChat(group, user) {
- group.chat = _.filter(group.chat, function(message) { return !message.flagCount || message.flagCount < 2; });
- _.each(group.chat, function (message) {
- if (message.flags) {
- var userHasFlagged = message.flags[user._id];
- message.flags = {};
-
- if (userHasFlagged) message.flags[user._id] = userHasFlagged;
- }
- });
-}
diff --git a/website/server/controllers/api-v2/hall.js b/website/server/controllers/api-v2/hall.js
deleted file mode 100644
index 05d3bf520c..0000000000
--- a/website/server/controllers/api-v2/hall.js
+++ /dev/null
@@ -1,89 +0,0 @@
-var _ = require('lodash');
-var nconf = require('nconf');
-var async = require('async');
-var shared = require('../../../../common');
-import {
- model as User,
-} from '../../models/user';
-import {
- model as Group,
-} from '../../models/group';
-var api = module.exports;
-
-api.ensureAdmin = function(req, res, next) {
- var user = res.locals.user;
- if (!(user.contributor && user.contributor.admin)) return res.status(401).json({err:"You don't have admin access"});
- next();
-}
-
-api.getHeroes = function(req,res,next) {
- User.find({'contributor.level':{$gt:0}})
- .select('contributor backer balance profile.name')
- .sort('-contributor.level')
- .exec(function(err, users){
- if (err) return next(err);
- res.json(users);
- });
-}
-
-api.getPatrons = function(req,res,next){
- var page = req.query.page || 0,
- perPage = 50;
- User.find({'backer.tier':{$gt:0}})
- .select('contributor backer profile.name')
- .sort('-backer.tier')
- .skip(page*perPage)
- .limit(perPage)
- .exec(function(err, users){
- if (err) return next(err);
- res.json(users);
- });
-}
-
-api.getHero = function(req,res,next) {
- User.findById(req.params.uid)
- .select('contributor balance profile.name purchased items')
- .select('auth.local.username auth.local.email auth.facebook auth.blocked')
- .exec(function(err, user){
- if (err) return next(err)
- if (!user) return res.status(400).json({err:'User not found'});
- res.json(user);
- });
-}
-
-api.updateHero = function(req,res,next) {
- async.waterfall([
- function(cb){
- User.findById(req.params.uid, cb);
- },
- function(member, cb){
- if (!member) return res.status(404).json({err: "User not found"});
- member.balance = req.body.balance || 0;
- var newTier = req.body.contributor.level; // tier = level in this context
- var oldTier = member.contributor && member.contributor.level || 0;
- if (newTier > oldTier) {
- member.flags.contributor = true;
- var gemsPerTier = {1:3, 2:3, 3:3, 4:4, 5:4, 6:4, 7:4, 8:0, 9:0}; // e.g., tier 5 gives 4 gems. Tier 8 = moderator. Tier 9 = staff
- var tierDiff = newTier - oldTier; // can be 2+ tier increases at once
- while (tierDiff) {
- member.balance += gemsPerTier[newTier] / 4; // balance is in $
- tierDiff--;
- newTier--; // give them gems for the next tier down if they weren't aready that tier
- }
- }
- member.contributor = req.body.contributor;
- member.purchased.ads = req.body.purchased.ads;
- if (member.contributor.level >= 6) member.items.pets['Dragon-Hydra'] = 5;
- if (req.body.itemPath && req.body.itemVal
- && req.body.itemPath.indexOf('items.') === 0
- && User.schema.paths[req.body.itemPath]) {
- shared.dotSet(member, req.body.itemPath, req.body.itemVal); // Sanitization at 5c30944 (deemed unnecessary)
- }
- if (_.isBoolean(req.body.auth.blocked)) member.auth.blocked = req.body.auth.blocked;
- member.save(cb);
- }
- ], function(err, saved){
- if (err) return next(err);
- res.status(204).json({});
- })
-}
diff --git a/website/server/controllers/api-v2/members.js b/website/server/controllers/api-v2/members.js
deleted file mode 100644
index 232bb9ed73..0000000000
--- a/website/server/controllers/api-v2/members.js
+++ /dev/null
@@ -1,139 +0,0 @@
-import {
- model as groups,
- chatDefaults,
-} from '../../models/group';
-import {
- model as User,
-} from '../../models/user';
-let partyFields = require('./groups').partyFields;
-var api = module.exports;
-var async = require('async');
-var _ = require('lodash');
-var shared = require('../../../../common');
-var utils = require('../../libs/api-v2/utils');
-var nconf = require('nconf');
-var pushNotify = require('./pushNotifications');
-
-var fetchMember = function(uuid, restrict){
- return function(cb){
- var q = User.findById(uuid);
- if (restrict) q.select(partyFields);
- q.exec(function(err, member){
- if (err) return cb(err);
- if (!member) return cb({code:404, err: 'User not found'});
- return cb(null, member);
- })
- }
-}
-
-var sendErr = function(err, res, next){
- err.code ? res.status(err.code).json({err: err.err}) : next(err);
-}
-
-api.getMember = function(req, res, next) {
- fetchMember(req.params.uuid, true)(function(err, member){
- if (err) return sendErr(err, res, next);
- res.json(member);
- })
-}
-
-api.sendMessage = function(user, member, data){
- var msg;
- if (!data.type) {
- msg = data.message
- } else {
- msg = "`Hello " + member.profile.name + ", " + user.profile.name + " has sent you ";
- if (data.type == 'gems') {
- var gemAmount = data.gems.amount;
- var gemLabel = gemAmount > 1 ? "gems" : "gem";
- msg += gemAmount + " " + gemLabel + "!`";
- } else {
- var monthAmount = shared.content.subscriptionBlocks[data.subscription.key].months;
- var monthLabel = monthAmount > 1 ? "months" : "month";
- msg += monthAmount + " " + monthLabel + " of subscription!`";
- }
- msg += data.message ? data.message : '';
- }
- shared.refPush(member.inbox.messages, chatDefaults(msg, user));
- member.inbox.newMessages++;
- member._v++;
- member.markModified('inbox.messages');
-
- shared.refPush(user.inbox.messages, _.defaults({sent:true}, chatDefaults(msg, member)));
- user.markModified('inbox.messages');
-}
-
-api.sendPrivateMessage = function(req, res, next){
- var fetchedMember;
- async.waterfall([
- fetchMember(req.params.uuid),
- function(member, cb) {
- fetchedMember = member;
- if (~member.inbox.blocks.indexOf(res.locals.user._id) // can't send message if that user blocked me
- || ~res.locals.user.inbox.blocks.indexOf(member._id) // or if I blocked them
- || member.inbox.optOut) { // or if they've opted out of messaging
- return cb({code: 401, err: "Can't send message to this user."});
- }
- api.sendMessage(res.locals.user, member, {message:req.body.message});
- async.parallel([
- function (cb2) { member.save(cb2) },
- function (cb2) { res.locals.user.save(cb2) }
- ], cb);
- }
- ], function(err){
- if (err) return sendErr(err, res, next);
-
- if(fetchedMember.preferences.emailNotifications.newPM !== false){
- utils.txnEmail(fetchedMember, 'new-pm', [
- {name: 'SENDER', content: utils.getUserInfo(res.locals.user, ['name']).name},
- {name: 'PMS_INBOX_URL', content: '/#/options/groups/inbox'}
- ]);
- }
-
- res.sendStatus(200);
- })
-}
-
-api.sendGift = function(req, res, next){
- async.waterfall([
- fetchMember(req.params.uuid),
- function(member, cb) {
- // Gems
- switch (req.body.type) {
- case "gems":
- var amt = req.body.gems.amount / 4,
- user = res.locals.user;
- if (member.id == user.id)
- return cb({code: 401, err: "Cannot send gems to yourself. Try a subscription instead."});
- if (!amt || amt <=0 || user.balance < amt)
- return cb({code: 401, err: "Amount must be within 0 and your current number of gems."});
- member.balance += amt;
- user.balance -= amt;
- api.sendMessage(user, member, req.body);
-
- var byUsername = utils.getUserInfo(user, ['name']).name;
-
- if(member.preferences.emailNotifications.giftedGems !== false){
- utils.txnEmail(member, 'gifted-gems', [
- {name: 'GIFTER', content: byUsername},
- {name: 'X_GEMS_GIFTED', content: req.body.gems.amount}
- ]);
- }
-
- pushNotify.sendNotify(member, shared.i18n.t('giftedGems'), shared.i18n.t('giftedGemsInfo', { amount: req.body.gems.amount, name: byUsername }));
-
- return async.parallel([
- function (cb2) { member.save(cb2) },
- function (cb2) { user.save(cb2) }
- ], cb);
- case "subscription":
- return cb();
- default:
- return cb({code:400, err:"Body must contain a gems:{amount,fromBalance} or subscription:{months} object"});
- }
- }
- ], function(err) {
- if (err) return sendErr(err, res, next);
- res.sendStatus(200);
- });
-}
diff --git a/website/server/controllers/api-v2/pushNotifications.js b/website/server/controllers/api-v2/pushNotifications.js
deleted file mode 100644
index 6b73816c94..0000000000
--- a/website/server/controllers/api-v2/pushNotifications.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// TODO move to /api-v2
-var api = module.exports;
-
-api.sendNotify = function(user, title, msg, timeToLive){
- // Disabled, see libs/api-v3/pushNotifications
-};
diff --git a/website/server/controllers/api-v2/unsubscription.js b/website/server/controllers/api-v2/unsubscription.js
deleted file mode 100644
index a91db19d86..0000000000
--- a/website/server/controllers/api-v2/unsubscription.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import {
- model as User,
-} from '../../models/user';
-import {
- model as EmailUnsubscription,
-} from '../../models/emailUnsubscription';
-var utils = require('../../libs/api-v2/utils');
-var i18n = require('../../../../common').i18n;
-
-var api = module.exports = {};
-
-api.unsubscribe = function(req, res, next){
- if(!req.query.code) return res.status(500).json({err: 'Missing unsubscription code.'});
-
- var data = JSON.parse(utils.decrypt(req.query.code));
-
- if(data._id){
- User.update({_id: data._id}, {
- $set: {'preferences.emailNotifications.unsubscribeFromAll': true}
- }, {multi: false}, function(err, updateRes){
- if(err) return next(err);
- if(updateRes.n !== 1) return res.json(404, {err: 'User not found'});
-
- res.send('' + i18n.t('unsubscribedSuccessfully', null, req.language) + ' ' + i18n.t('unsubscribedTextUsers', null, req.language));
- });
- }else{
- EmailUnsubscription.findOne({email: data.email}, function(err, doc){
- if(err) return next(err);
- var okRes = '' + i18n.t('unsubscribedSuccessfully', null, req.language) + ' ' + i18n.t('unsubscribedTextOthers', null, req.language);
-
- if(doc) return res.send(okRes);
-
- EmailUnsubscription.create({email: data.email}, function(err, doc){
- if(err) return next(err);
-
- res.send(okRes);
- })
- });
- }
-};
diff --git a/website/server/controllers/api-v2/user.js b/website/server/controllers/api-v2/user.js
deleted file mode 100644
index 3812accfb6..0000000000
--- a/website/server/controllers/api-v2/user.js
+++ /dev/null
@@ -1,1066 +0,0 @@
-var url = require('url');
-var ipn = require('paypal-ipn');
-var _ = require('lodash');
-var validator = require('validator');
-var nconf = require('nconf');
-var asyncM = require('async');
-var shared = require('../../../../common');
-import {
- model as User,
-} from '../../models/user';
-import {
- NotFound,
-} from '../../libs/api-v3/errors';
-import { model as Tag } from '../../models/tag';
-import * as Tasks from '../../models/task';
-import Bluebird from 'bluebird';
-import {removeFromArray} from './../../libs/api-v3/collectionManipulators';
-var utils = require('./../../libs/api-v2/utils');
-var analytics = utils.analytics;
-import {
- basicFields as basicGroupFields,
- model as Group,
-} from '../../models/group';
-import {
- model as Challenge,
-} from '../../models/challenge';
-var moment = require('moment');
-var logging = require('./../../libs/api-v2/logging');
-var acceptablePUTPaths;
-let restrictedPUTSubPaths;
-import v3UserController from '../api-v3/user';
-
-let i18n = shared.i18n;
-
-var api = module.exports;
-var webhook = require('../../libs/api-v2/webhook');
-
-const partyMembersFields = 'profile.name stats achievements items.special';
-
-// api.purchase // Shared.ops
-
-api.getContent = function(req, res, next) {
- var language = 'en';
-
- if (typeof req.query.language != 'undefined')
- language = req.query.language.toString(); //|| 'en' in i18n
-
- var content = _.cloneDeep(shared.content);
- var walk = function(obj, lang){
- _.each(obj, function(item, key, source){
- if (_.isPlainObject(item) || _.isArray(item)) return walk(item, lang);
- if (_.isFunction(item) && item.i18nLangFunc) source[key] = item(lang);
- });
- }
- walk(content, language);
- res.json(content);
-}
-
-api.getModelPaths = function(req,res,next){
- res.json(_.reduce(User.schema.paths,function(m,v,k){
- m[k] = v.instance || 'Boolean';
- return m;
- },{}));
-}
-
-/*
- ------------------------------------------------------------------------
- Tasks
- ------------------------------------------------------------------------
-*/
-
-
-/*
- Local Methods
- ---------------
-*/
-
-var findTask = function(req, res) {
- return res.locals.user.tasks[req.params.id];
-};
-
-function findTaskByIdOrLegacyId (user, taskId, callback) {
- asyncM.waterfall([
- function (cb) {
- Tasks.Task.findOne({
- _id: taskId,
- userId: user._id,
- }, cb);
- },
- function (task, cb) {
- if (task) return cb(null, task);
-
- Tasks.Task.findOne({
- _legacyId: taskId,
- userId: user._id,
- }, cb);
- },
- ], callback);
-}
-
-/*
- API Routes
- ---------------
-*/
-
-api.score = function(req, res, next) {
- var id = req.params.id,
- direction = req.params.direction,
- user = res.locals.user,
- body = req.body || {},
- task;
-
- // Send error responses for improper API call
- if (!id) return res.json(400, {err: ':id required'});
- if (direction !== 'up' && direction !== 'down') {
- if (direction == 'unlink' || direction == 'sort') return next();
- return res.json(400, {err: ":direction must be 'up' or 'down'"});
- }
-
- findTaskByIdOrLegacyId(user, id, function (err, task) {
- if (err) return next(err);
-
- // If exists already, score it
- if (!task) {
- // If it doesn't exist, this is likely a 3rd party up/down - create a new one, then score it
- // Defaults. Other defaults are handled in user.ops.addTask()
- var taskOptions = {
- type: body.type || 'habit',
- text: body.text || id,
- userId: user._id,
- notes: body.notes || "This task was created by a third-party service. Feel free to edit, it won't harm the connection to that service. Additionally, multiple services may piggy-back off this task." // TODO translate
- }
-
- if (validator.isUUID(id)) {
- taskOptions._id = id; // TODO this might easily lead to conflicts as ids are now unique db-wide
- } else {
- taskOptions._legacyId = id;
- }
-
- task = new Tasks.Task(taskOptions);
-
- user.tasksOrder[task.type + 's'].unshift(task._id);
- }
-
- // Set completed if type is daily or todo
- if (task.type === 'daily' || task.type === 'todo') {
- task.completed = direction === 'up';
- }
-
- var [delta] = shared.ops.scoreTask({
- user,
- task,
- direction,
- }, req);
- // Drop system (don't run on the client, as it would only be discarded since ops are sent to the API, not the results)
- if (direction === 'up') user.fns.randomDrop({task, delta}, req);
-
- asyncM.parallel({
- task: task.save.bind(task),
- user: user.save.bind(user)
- }, function(err, results){
- if(err) return next(err);
-
- // TODO this is suuuper strange, sometimes results.user is an array, sometimes user directly
- var saved = Array.isArray(results.user) ? results.user[0] : results.user;
- var task = Array.isArray(results.task) ? results.task[0] : results.task;
-
- var userStats = saved.toJSON().stats;
- var resJsonData = _.extend({ delta: delta, _tmp: user._tmp }, userStats);
- res.json(200, resJsonData);
-
- var webhookData = _generateWebhookTaskData(
- task, direction, delta, userStats, user
- );
- webhook.sendTaskWebhook(user.preferences.webhooks, webhookData);
-
- if (
- (!task.challenge.id || task.challenge.broken) // If it's a challenge task, sync the score. Do it in the background, we've already sent down a response and the user doesn't care what happens back there
- || (task.type == 'reward') // we don't want to update the reward GP cost
- ) return;
-
- // select name and shortName because they can be synced on syncToUser
- Challenge.findById(task.challenge.id, 'name shortName', function(err, chal) {
- if (err) return next(err);
- if (!chal) {
- task.challenge.broken = 'CHALLENGE_DELETED';
- task.save();
- return;
- }
-
- Tasks.Task.findOne({
- '_id': task.challenge.taskId,
- userId: {$exists: false}
- }, function(err, chalTask){
- if(err) return; //TODO
- // this task was removed from the challenge, notify user
- if(!chalTask) {
- // TODO finish
- chal.getTasks(function(err, chalTasks){
- if(err) return; //TODO
- chal.syncToUser(user, chalTasks);
- });
- } else {
- chalTask.value += delta;
- if (chalTask.type == 'habit' || chalTask.type == 'daily')
- chalTask.history.push({value: chalTask.value, date: +new Date});
- chalTask.save();
- }
- });
- });
- });
- });
-};
-
-/**
- * Get all tasks
- */
-api.getTasks = function(req, res, next) {
- var user = res.locals.user;
-
- user.getTasks(req.query.type, function (err, tasks) {
- if (err) return next(err);
- res.status(200).json(tasks.map(task => task.toJSONV2()));
- });
-};
-
-/**
- * Get Task
- */
-api.getTask = function(req, res, next) {
- var user = res.locals.user,
- id = req.params.id;
-
- findTaskByIdOrLegacyId(user, id, function (err, task) {
- if (err) return next(err);
- if (!task) return res.status(404).json({err: shared.i18n.t('messageTaskNotFound')});
- res.status(200).json(task.toJSONV2());
- });
-};
-
-/*
- ------------------------------------------------------------------------
- Items
- ------------------------------------------------------------------------
-*/
-// api.buy // handled in Shard.ops
-
-api.getBuyList = function (req, res, next) {
- var list = shared.updateStore(res.locals.user);
- return res.status(200).json(list);
-};
-
-/*
- ------------------------------------------------------------------------
- User
- ------------------------------------------------------------------------
-*/
-
-/**
- * Get User
- */
-api.getUser = function(req, res, next) {
- res.locals.user.getTransformedData(function(err, user){
- user.stats.toNextLevel = shared.tnl(user.stats.lvl);
- user.stats.maxHealth = shared.maxHealth;
- user.stats.maxMP = res.locals.user._statsComputed.maxMP;
- delete user.apiToken;
- if (user.auth && user.auth.local) {
- delete user.auth.local.hashed_password;
- delete user.auth.local.salt;
- }
- return res.status(200).json(user);
- });
-};
-
-/**
- * Get anonymized User
- */
-api.getUserAnonymized = function(req, res, next) {
- res.locals.user.getTransformedData(function(err, user){
- user.stats.toNextLevel = shared.tnl(user.stats.lvl);
- user.stats.maxHealth = shared.maxHealth;
- user.stats.maxMP = res.locals.user._statsComputed.maxMP;
-
- delete user.apiToken;
-
- if (user.auth) {
- delete user.auth.local;
- delete user.auth.facebook;
- }
-
- delete user.newMessages;
-
- delete user.profile;
- delete user.purchased.plan;
- delete user.contributor;
- delete user.invitations;
-
- delete user.items.special.nyeReceived;
- delete user.items.special.valentineReceived;
-
- delete user.webhooks;
- delete user.achievements.challenges;
-
- _.forEach(user.inbox.messages, function(msg){
- msg.text = "inbox message text";
- });
-
- _.forEach(user.tags, function(tag){
- tag.name = "tag";
- tag.challenge = "challenge";
- });
-
- function cleanChecklist(task){
- var checklistIndex = 0;
-
- _.forEach(task.checklist, function(c){
- c.text = "item" + checklistIndex++;
- });
- }
-
- _.forEach(user.habits, function(task){
- task.text = "task text";
- task.notes = "task notes";
- });
-
- _.forEach(user.rewards, function(task){
- task.text = "task text";
- task.notes = "task notes";
- });
-
- _.forEach(user.dailys, function(task){
- task.text = "task text";
- task.notes = "task notes";
-
- cleanChecklist(task);
- });
-
- _.forEach(user.todos, function(task){
- task.text = "task text";
- task.notes = "task notes";
-
- cleanChecklist(task);
- });
-
- return res.status(200).json(user);
- });
-};
-
-/**
- * This tells us for which paths users can call `PUT /user` (or batch-update equiv, which use `User.set()` on our client).
- * The trick here is to only accept leaf paths, not root/intermediate paths (see http://goo.gl/OEzkAs)
- * TODO - one-by-one we want to widdle down this list, instead replacing each needed set path with API operations
- */
-acceptablePUTPaths = _.reduce(require('./../../models/user').schema.paths, (m, v, leaf) => {
- let updatablePaths = 'achievements filters flags invitations lastCron party preferences profile stats inbox'.split(' ');
- let found = _.find(updatablePaths, (rootPath) => {
- return leaf.indexOf(rootPath) === 0;
- });
-
- if (found) m[leaf] = true;
-
- return m;
-}, {});
-
-restrictedPUTSubPaths = 'stats.class'.split(' ');
-
-_.each(restrictedPUTSubPaths, (removePath) => {
- delete acceptablePUTPaths[removePath];
-});
-
-let requiresPurchase = {
- 'preferences.background': 'background',
- 'preferences.shirt': 'shirt',
- 'preferences.size': 'size',
- 'preferences.skin': 'skin',
- 'preferences.chair': 'chair',
- 'preferences.hair.bangs': 'hair.bangs',
- 'preferences.hair.base': 'hair.base',
- 'preferences.hair.beard': 'hair.beard',
- 'preferences.hair.color': 'hair.color',
- 'preferences.hair.flower': 'hair.flower',
- 'preferences.hair.mustache': 'hair.mustache',
-};
-
-let checkPreferencePurchase = (user, path, item) => {
- let itemPath = `${path}.${item}`;
- let appearance = _.get(shared.content.appearances, itemPath)
- if (!appearance) return false;
- if (appearance.price === 0) return true;
-
- return _.get(user.purchased, itemPath);
-};
-
-/**
- * Update user
- * Send up PUT /user as `req.body={path1:val, path2:val, etc}`. Example:
- * PUT /user {'stats.hp':50, 'tasks.TASK_ID.repeat.m':false}
- * See acceptablePUTPaths for which user paths are supported
-*/
-api.update = (req, res, next) => {
- let user = res.locals.user;
- let errors = [];
-
- if (_.isEmpty(req.body)) return res.status(200).json(user);
-
- _.each(req.body, (v, k) => {
- let purchasable = requiresPurchase[k];
-
- if (purchasable && !checkPreferencePurchase(user, purchasable, v)) {
- return errors.push(`Must purchase ${v} to set it on ${k}`);
- }
-
- if (acceptablePUTPaths[k]) {
- user.fns.dotSet(k, v);
- } else {
- errors.push(shared.i18n.t('messageUserOperationProtected', { operation: k }));
- }
- return true;
- });
-
- user.save((err) => {
- if (!_.isEmpty(errors)) return res.status(401).json({err: errors});
- if (err) {
- if (err.name == 'ValidationError') {
- let errorMessages = _.map(_.values(err.errors), (error) => {
- return error.message;
- });
- return res.status(400).json({err: errorMessages});
- }
- return next(err);
- }
-
- res.status(200).json(user);
- user = errors = null;
- });
-};
-
-api.cron = require('../../middlewares/api-v3/cron');
-
-// api.reroll // Shared.ops
-// api.reset // Shared.ops
-
-api.delete = function(req, res, next) {
- var user = res.locals.user;
- var plan = user.purchased.plan;
-
- if (plan && plan.customerId && !plan.dateTerminated){
- return res.status(400).json({err:"You have an active subscription, cancel your plan before deleting your account."});
- }
-
- let types = ['party', 'guilds'];
- let groupFields = basicGroupFields.concat(' leader memberCount');
-
- Group.getGroups({user, types, groupFields})
- .then(groups => {
- return Bluebird.all(groups.map((group) => {
- return group.leave(user, 'remove-all');
- }));
- })
- .then(() => {
- return Tasks.Task.remove({
- userId: user._id,
- }).exec();
- })
- .then(() => {
- return user.remove();
- })
- .then(() => {
- res.sendStatus(200);
- })
- .catch(next);
-}
-
-/*
- ------------------------------------------------------------------------
- Development Only Operations
- ------------------------------------------------------------------------
- */
-if (nconf.get('NODE_ENV') === 'development') {
-
- api.addTenGems = function(req, res, next) {
- var user = res.locals.user;
-
- user.balance += 2.5;
-
- user.save(function(err){
- if (err) return next(err);
- res.sendStatus(204);
- });
- };
-
- api.addHourglass = function(req, res, next) {
- var user = res.locals.user;
-
- user.purchased.plan.consecutive.trinkets += 1;
-
- user.save(function(err){
- if (err) return next(err);
- res.sendStatus(204);
- });
- };
-}
-
-/*
- ------------------------------------------------------------------------
- Tags
- ------------------------------------------------------------------------
- */
-
-api.getTags = function (req, res, next) {
- res.json(res.locals.user.tags.toObject().map(tag => {
- return {
- name: tag.name,
- id: tag.id,
- challenge: tag.challenge,
- }
- }));
-};
-
-api.getTag = function (req, res, next) {
- let tag = _.find(res.locals.user.tags, {id: req.params.id});
- if (!tag) {
- return res.status(404).json({err: i18n.t('messageTagNotFound', req.language)});
- }
-
- res.json({
- name: tag.name,
- id: tag.id,
- challenge: tag.challenge,
- });
-};
-
-api.addTag = function (req, res, next) {
- let user = res.locals.user;
-
- user.tags.push(Tag.sanitize(req.body));
- user.save(function (err, user) {
- if (err) return next(err);
-
- res.json(user.tags.toObject().map(tag => {
- return {
- name: tag.name,
- id: tag.id,
- challenge: tag.challenge,
- }
- }));
- });
-};
-
-api.updateTag = function (req, res, next) {
- let user = res.locals.user;
-
- let tag = _.find(res.locals.user.tags, {id: req.params.id});
- if (!tag) {
- return res.status(404).json({err: i18n.t('messageTagNotFound', req.language)});
- }
-
- tag.name = req.body.name;
- user.save(function (err, user) {
- if (err) return next(err);
-
- res.json({
- name: tag.name,
- id: tag.id,
- challenge: tag.challenge,
- });
- });
-}
-
-api.sortTag = function (req, res, next) {
- var ref = req.query;
- var to = ref.to;
- var from = ref.from;
- let user = res.locals.user;
-
- if (!((to != null) && (from != null))) {
- return res.statu(500).json('?to=__&from=__ are required');
- }
-
- user.tags.splice(to, 0, user.tags.splice(from, 1)[0]);
- user.save(function (err, user) {
- if (err) return next(err);
-
- res.json(user.tags.toObject().map(tag => {
- return {
- name: tag.name,
- id: tag.id,
- challenge: tag.challenge,
- }
- }));
- });
-}
-
-api.deleteTag = function (req, res, next) {
- let user = res.locals.user;
-
- let tag = removeFromArray(user.tags, { id: req.params.id });
- if (!tag) {
- return res.status(404).json({err: i18n.t('messageTagNotFound', req.language)});
- }
-
-
- Tasks.Task.update({
- userId: user._id,
- }, {
- $pull: {
- tags: tag.id,
- },
- }, {multi: true}).exec();
-
- user.save(function (err, user) {
- if (err) return next(err);
-
- res.json(user.tags.toObject().map(tag => {
- return {
- name: tag.name,
- id: tag.id,
- challenge: tag.challenge,
- }
- }));
- });
-}
-
-/*
- ------------------------------------------------------------------------
- Spells
- ------------------------------------------------------------------------
- */
-api.cast = async function(req, res, next) {
- try {
- let user = res.locals.user;
- let spellId = req.params.spell;
- let targetId = req.query.targetId;
-
- if (spellId === 'heallAll') {
- spellId = 'healAll';
- } else if (spellId === 'spookDust') {
- spellId = 'spookySparkles';
- }
-
- let klass = shared.content.spells.special[spellId] ? 'special' : user.stats.class;
- let spell = shared.content.spells[klass][spellId];
-
- if (!spell) return res.status(404).json({err: 'Spell "' + req.params.spell + '" not found.'});
- if (spell.mana > user.stats.mp) return res.status(400).json({err: 'Not enough mana to cast spell'});
-
- let targetType = spell.target;
-
- if (targetType === 'task') {
- let task = await Tasks.Task.findOne({
- _id: targetId,
- userId: user._id,
- }).exec();
- if (!task) {
- return res.status(404).json({err: 'Task "' + targetId + '" not found.'});
- }
- if (task.challenge.id) return res.status(40).json({err: 'Cannot cast spell on challenge task.'});
-
-
- spell.cast(user, task, req);
- await task.save();
- } else if (targetType === 'self') {
- spell.cast(user, null, req);
- await user.save();
- } else if (targetType === 'tasks') { // new target type when all the user's tasks are necessary
- let tasks = await Tasks.Task.find({
- userId: user._id,
- 'challenge.id': {$exists: false}, // exclude challenge tasks
- $or: [ // Exclude completed todos
- {type: 'todo', completed: false},
- {type: {$in: ['habit', 'daily', 'reward']}},
- ],
- }).exec();
-
- spell.cast(user, tasks, req);
-
- let toSave = tasks.filter(t => t.isModified());
- let isUserModified = user.isModified();
- toSave.unshift(user.save());
- let saved = await Bluebird.all(toSave);
- } else if (targetType === 'party' || targetType === 'user') {
- let party = await Group.getGroup({groupId: 'party', user});
- // arrays of users when targetType is 'party' otherwise single users
- let partyMembers;
-
- if (targetType === 'party') {
- if (!party) {
- partyMembers = [user]; // Act as solo party
- } else {
- partyMembers = await User.find({'party._id': party._id}).select(partyMembersFields).exec();
- }
-
- spell.cast(user, partyMembers, req);
- await Bluebird.all(partyMembers.map(m => m.save()));
- } else {
- if (!party && (!targetId || user._id === targetId)) {
- partyMembers = user;
- } else {
- partyMembers = await User.findOne({_id: targetId, 'party._id': party._id}).select(partyMembersFields).exec();
- }
-
- if (!partyMembers) throw new NotFound(res.t('userWithIDNotFound', {userId: targetId}));
- spell.cast(user, partyMembers, req);
- if (partyMembers === user) {
- await partyMembers.save();
- } else {
- await Bluebird.all([
- await partyMembers.save(),
- await user.save(),
- ]);
- }
- }
-
- if (party && !spell.silent) {
- let message = `\`${user.profile.name} casts ${spell.text()}${targetType === 'user' ? ` on ${partyMembers.profile.name}` : ' for the party'}.\``;
- party.sendChat(message);
- await party.save();
- }
- }
-
- user.getTransformedData(function (err, transformedUser) {
- if (err) next(err);
- res.json(transformedUser);
- });
- } catch (e) {
- return res.status(500).json({err: 'An error happened'});
- }
-}
-
-// It supports guild too now but we'll stick to partyInvite for backward compatibility
-api.sessionPartyInvite = function(req,res,next){
- if (!req.session.partyInvite) return next();
- var inv = res.locals.user.invitations;
- if (inv.party && inv.party.id) return next(); // already invited to a party
- asyncM.waterfall([
- function(cb){
- Group.findOne({_id:req.session.partyInvite.id, members:{$in:[req.session.partyInvite.inviter]}})
- .select('invites members type').exec(cb);
- },
- function(group, cb){
- if (!group){
- // Don't send error as it will prevent users from using the site
- delete req.session.partyInvite;
- return cb();
- }
-
- if (group.type == 'guild'){
- inv.guilds.push(req.session.partyInvite);
- } else{
- //req.body.type in 'guild', 'party'
- inv.party = req.session.partyInvite;
- }
- inv.party = req.session.partyInvite;
- delete req.session.partyInvite;
- if (!~group.invites.indexOf(res.locals.user._id))
- group.invites.push(res.locals.user._id); //$addToSt
- group.save(cb);
- },
- function(saved, cb){
- res.locals.user.save(cb);
- }
- ], next);
-}
-
-api.clearCompleted = function(req, res, next) {
- var user = res.locals.user;
-
- Tasks.Task.remove({
- userId: user._id,
- type: 'todo',
- completed: true,
- 'challenge.id': {$exists: false},
- }, function (err) {
- if (err) return next(err);
-
- Tasks.Task.find({
- userId: user._id,
- type: 'todo',
- completed: false,
- }, function (err, uncompleted) {
- if (err) return next(err);
- res.json(uncompleted);
- });
- });
-};
-
-api.sortTask = async function (req, res, next) {
- try {
- let user = res.locals.user;
- let to = Number(req.query.to);
-
- let task = await Tasks.Task.findOne({
- _id: req.params.id,
- userId: user._id,
- }).exec();
-
- if (!task) return res.status(404).json(i18n.t('messageTaskNotFound', req.language));
- if (task.type !== 'todo' || !task.completed) {
- let order = user.tasksOrder[`${task.type}s`];
- let currentIndex = order.indexOf(task._id);
-
- // If for some reason the task isn't ordered (should never happen), push it in the new position
- // if the task is moved to a non existing position
- // or if the task is moved to position -1 (push to bottom)
- // -> push task at end of list
- if (!order[to] && to !== -1) {
- order.push(task._id);
- } else {
- if (currentIndex !== -1) order.splice(currentIndex, 1);
- if (to === -1) {
- order.push(task._id);
- } else {
- order.splice(to, 0, task._id);
- }
- }
- await user.save();
- }
-
- user.getTasks(function (err, userTasks) {
- if(err) return next(err);
- res.json(userTasks);
- });
- } catch (e) {
- res.status(500).json({err: 'An error happened.'});
- }
-}
-
-api.deleteTask = function(req, res, next) {
- var user = res.locals.user;
- if(!req.params || !req.params.id) return res.json(404, shared.i18n.t('messageTaskNotFound', req.language));
-
- var id = req.params.id;
- // Try removing from all orders since we don't know the task's type
- var removeTaskFromOrder = function(array) {
- removeFromArray(array, id);
- };
-
- ['habits', 'dailys', 'todos', 'rewards'].forEach(function (type){
- removeTaskFromOrder(user.tasksOrder[type])
- });
-
- asyncM.parallel({
- user: user.save.bind(user),
- task: function(cb) {
- Tasks.Task.remove({_id: id, userId: user._id}, cb);
- }
- }, function(err, results) {
- if(err) return next(err);
-
- if(results.task.result.n < 1){
- return res.status(404).json({err: shared.i18n.t('messageTaskNotFound', req.language)})
- }
-
- res.status(200).json({});
- });
-};
-
-api.updateTask = function(req, res, next) {
- var user = res.locals.user,
- id = req.params.id;
-
- req.body = Tasks.Task.fromJSONV2(req.body);
-
- findTaskByIdOrLegacyId(user, id, function (err, task) {
- if(err) return next(err);
- if(!task) return res.status(404).json({err: 'Task not found.'})
-
- try {
- // we have to convert task to an object because otherwise things don't get merged correctly. Bad for performances?
- let [updatedTaskObj] = shared.ops.updateTask(task.toObject(), req);
-
- // Sanitize differently user tasks linked to a challenge
- let sanitizedObj;
-
- if (task.userId && task.challenge && task.challenge.id) {
- sanitizedObj = Tasks.Task.sanitizeUserChallengeTask(updatedTaskObj);
- } else {
- sanitizedObj = Tasks.Task.sanitize(updatedTaskObj);
- }
-
- _.assign(task, sanitizedObj);
-
- task.save(function(err, task){
- if(err) return next(err);
-
- return res.json(task.toJSONV2());
- });
- } catch (err) {
- return res.status(err.code).json({err: err.message});
- }
- });
-};
-
-api.addTask = function(req, res, next) {
- var user = res.locals.user;
- req.body.type = req.body.type || 'habit';
- req.body.text = req.body.text || 'text';
- req.body = Tasks.Task.fromJSONV2(req.body);
-
- var task = new Tasks[req.body.type](Tasks.Task.sanitize(req.body));
-
- task.userId = user._id;
- user.tasksOrder[task.type + 's'].unshift(task._id);
-
- // Validate that the task is valid and throw if it isn't
- // otherwise since we're saving user/challenge and task in parallel it could save the user/challenge with a tasksOrder that doens't match reality
- let validationErrors = task.validateSync();
- if (validationErrors) return next(validationErrors);
-
- Bluebird.all([
- user.save(),
- task.save({validateBeforeSave: false}) // already done ^
- ]).then(results => {
- res.status(200).json(results[1].toJSONV2());
- }).catch(next);
-};
-
-/**
- * All other user.ops which can easily be mapped to common/script/index.js, not requiring custom API-wrapping
- */
-_.each(shared.ops, function(op,k){
- var kv3;
-
- if (['rebirth', 'reroll', 'reset'].indexOf(k) !== -1) { // proxy ops that change tasks directly to v3
- if (k === 'rebirth') kv3 = 'userRebirth'; // the name is different in v3
- if (k === 'reroll') kv3 = 'userReroll';
- if (k === 'reset') kv3 = 'userReset';
-
- api[k] = function (req, res, next) {
- req.v2 = true;
- v3UserController[kv3].handler(req, res, next).catch(next);
- }
- } else if (!api[k]) {
- api[k] = function(req, res, next) {
- var opResponse;
- try {
- req.v2 = true; // Used to indicate to the shared code that the old response data should be returned
- opResponse = shared.ops[k](res.locals.user, req, analytics);
- if (Array.isArray(opResponse) && opResponse.length < 3) {
- opResponse = opResponse[0];
- }
- } catch (err) {
- if (!err.code) return next(err);
- if (err.code >= 400) return res.status(err.code).json({err:err.message});
- }
-
- // If we want to send something other than 500, pass err as {code: 200, message: "Not enough GP"}
- res.locals.user.save(function(err){
- if (err) return next(err);
- if (opResponse === res.locals.user) { // add tasks
- res.locals.user.getTransformedData(function (err, transformedUser) {
- if (err) return next(err);
- res.status(200).json(transformedUser);
- });
- } else {
- res.status(200).json(opResponse);
- }
- });
- }
- }
-})
-
-/*
- ------------------------------------------------------------------------
- Batch Update
- Run a bunch of updates all at once
- ------------------------------------------------------------------------
-*/
-api.batchUpdate = function(req, res, next) {
- if (_.isEmpty(req.body)) req.body = []; // cases of {} or null
- if (req.body[0] && req.body[0].data)
- return res.status(501).json({err: "API has been updated, please refresh your browser or upgrade your mobile app."})
-
- var user = res.locals.user;
- var oldSend = res.send;
- var oldJson = res.json;
-
- // Stash user.save, we'll queue the save op till the end (so we don't overload the server)
- //var oldSave = user.save;
- //user.save = function(cb){cb(null,user)}
-
- // Setup the array of functions we're going to call in parallel with async
- res.locals.ops = [];
- var ops = _.transform(req.body, function(m,_req){
- if (_.isEmpty(_req)) return;
- _req.language = req.language;
-
- m.push(function() {
- var cb = arguments[arguments.length-1];
- res.locals.ops.push(_req);
- res.send = res.json = function(code, data) {
- if (_.isNumber(code) && code >= 500)
- return cb(code+": "+ (data.message ? data.message : data.err ? data.err : JSON.stringify(data)));
- return cb();
- };
- if(!api[_req.op]) { return cb(shared.i18n.t('messageUserOperationNotFound', { operation: _req.op })); }
-
- api[_req.op](_req, res, cb);
- });
- })
- // Finally, save user at the end
- .concat(/*function(){
- user.save = oldSave;
- user.save(arguments[arguments.length-1]);
- }*/);
-
- // call all the operations, then return the user object to the requester
- asyncM.waterfall(ops, function(err) {
- res.json = oldJson;
- res.send = oldSend;
- if (err) return next(err);
-
- var response;
-
- // return only drops & streaks
- if (user._tmp && user._tmp.drop){
- response = user.toJSON();
- res.status(200).json({_tmp: {drop: response._tmp.drop}, _v: response._v});
-
- // Fetch full user object
- } else if (res.locals.wasModified){
- // Preen 3-day past-completed To-Dos from Angular & mobile app
- user.getTransformedData(function(err, transformedData){
- if (err) next(err);
- response = transformedData;
-
- response.todos = shared.preenTodos(response.todos);
- response.wasModified = true;
- res.status(200).json(response);
- });
- // return only the version number
- } else{
- response = user.toJSON();
- res.status(200).json({_v: response._v});
- }
-
- //user.fns.nullify();
- user = res.locals.user = oldSend = oldJson = null;
- });
-};
-
-function _generateWebhookTaskData(task, direction, delta, stats, user) {
- var extendedStats = _.extend(stats, {
- toNextLevel: shared.tnl(user.stats.lvl),
- maxHealth: shared.maxHealth,
- maxMP: user._statsComputed.maxMP
- });
-
- var userData = {
- _id: user._id,
- _tmp: user._tmp,
- stats: extendedStats
- };
-
- var taskData = {
- details: task,
- direction: direction,
- delta: delta
- }
-
- return {
- task: taskData,
- user: userData
- }
-}
diff --git a/website/server/controllers/api-v3/auth.js b/website/server/controllers/api-v3/auth.js
index d69597808d..eae17136ed 100644
--- a/website/server/controllers/api-v3/auth.js
+++ b/website/server/controllers/api-v3/auth.js
@@ -4,22 +4,22 @@ import passport from 'passport';
import nconf from 'nconf';
import {
authWithHeaders,
-} from '../../middlewares/api-v3/auth';
+} from '../../middlewares/auth';
import {
NotAuthorized,
BadRequest,
NotFound,
-} from '../../libs/api-v3/errors';
+} from '../../libs/errors';
import Bluebird from 'bluebird';
-import * as passwordUtils from '../../libs/api-v3/password';
-import logger from '../../libs/api-v3/logger';
+import * as passwordUtils from '../../libs/password';
+import logger from '../../libs/logger';
import { model as User } from '../../models/user';
import { model as Group } from '../../models/group';
import { model as EmailUnsubscription } from '../../models/emailUnsubscription';
-import { sendTxn as sendTxnEmail } from '../../libs/api-v3/email';
-import { decrypt } from '../../libs/api-v3/encryption';
-import { send as sendEmail } from '../../libs/api-v3/email';
-import pusher from '../../libs/api-v3/pusher';
+import { sendTxn as sendTxnEmail } from '../../libs/email';
+import { decrypt } from '../../libs/encryption';
+import { send as sendEmail } from '../../libs/email';
+import pusher from '../../libs/pusher';
let api = {};
@@ -163,7 +163,7 @@ api.registerLocal = {
function _loginRes (user, req, res) {
if (user.auth.blocked) throw new NotAuthorized(res.t('accountSuspended', {userId: user._id}));
- return res.respond(200, {id: user._id, apiToken: user.apiToken});
+ return res.respond(200, {id: user._id, apiToken: user.apiToken, newUser: user.newUser || false});
}
/**
@@ -178,6 +178,7 @@ function _loginRes (user, req, res) {
*
* @apiSuccess {String} data._id The user's unique identifier
* @apiSuccess {String} data.apiToken The user's api token that must be used to authenticate requests.
+ * @apiSuccess {Boolean} data.newUser Returns true if the user was just created (always false for local login).
*/
api.loginLocal = {
method: 'POST',
@@ -260,6 +261,7 @@ api.loginSocial = {
let savedUser = await user.save();
+ user.newUser = true;
_loginRes(user, ...arguments);
// Clean previous email preferences
@@ -359,8 +361,8 @@ api.pusherAuth = {
* @apiName UpdateUsername
* @apiGroup User
*
- * @apiParam {string} password Body parameter - The current user password
- * @apiParam {string} username Body parameter - The new username
+ * @apiParam {String} password Body parameter - The current user password
+ * @apiParam {String} username Body parameter - The new username
* @apiSuccess {String} data.username The new username
**/
@@ -407,9 +409,9 @@ api.updateUsername = {
* @apiName UpdatePassword
* @apiGroup User
*
- * @apiParam {string} password Body parameter - The old password
- * @apiParam {string} newPassword Body parameter - The new password
- * @apiParam {string} confirmPassword Body parameter - New password confirmation
+ * @apiParam {String} password Body parameter - The old password
+ * @apiParam {String} newPassword Body parameter - The new password
+ * @apiParam {String} confirmPassword Body parameter - New password confirmation
*
* @apiSuccess {Object} data An empty object
**/
@@ -458,9 +460,9 @@ api.updatePassword = {
* @apiName ResetPassword
* @apiGroup User
*
- * @apiParam {string} email Body parameter - The email address of the user
+ * @apiParam {String} email Body parameter - The email address of the user
*
- * @apiSuccess {string} message The localized success message
+ * @apiSuccess {String} message The localized success message
**/
api.resetPassword = {
method: 'POST',
@@ -513,10 +515,10 @@ api.resetPassword = {
* @apiName UpdateEmail
* @apiGroup User
*
- * @apiParam {string} Body parameter - newEmail The new email address.
- * @apiParam {string} Body parameter - password The user password.
+ * @apiParam {String} Body parameter - newEmail The new email address.
+ * @apiParam {String} Body parameter - password The user password.
*
- * @apiSuccess {string} data.email The updated email address
+ * @apiSuccess {String} data.email The updated email address
*/
api.updateEmail = {
method: 'PUT',
diff --git a/website/server/controllers/api-v3/challenges.js b/website/server/controllers/api-v3/challenges.js
index c302e941cb..60a73b1a19 100644
--- a/website/server/controllers/api-v3/challenges.js
+++ b/website/server/controllers/api-v3/challenges.js
@@ -1,4 +1,4 @@
-import { authWithHeaders, authWithSession } from '../../middlewares/api-v3/auth';
+import { authWithHeaders, authWithSession } from '../../middlewares/auth';
import _ from 'lodash';
import { model as Challenge } from '../../models/challenge';
import {
@@ -13,10 +13,10 @@ import {
import {
NotFound,
NotAuthorized,
-} from '../../libs/api-v3/errors';
+} from '../../libs/errors';
import * as Tasks from '../../models/task';
import Bluebird from 'bluebird';
-import csvStringify from '../../libs/api-v3/csvStringify';
+import csvStringify from '../../libs/csvStringify';
let api = {};
@@ -26,7 +26,7 @@ let api = {};
* @apiName CreateChallenge
* @apiGroup Challenge
*
- * @apiSuccess {object} data The newly created challenge
+ * @apiSuccess {Object} data The newly created challenge
*/
api.createChallenge = {
method: 'POST',
@@ -117,7 +117,7 @@ api.createChallenge = {
* @apiGroup Challenge
* @apiParam {UUID} challengeId The challenge _id
*
- * @apiSuccess {object} data The challenge the user joined
+ * @apiSuccess {Object} data The challenge the user joined
*/
api.joinChallenge = {
method: 'POST',
@@ -164,7 +164,7 @@ api.joinChallenge = {
* @apiGroup Challenge
* @apiParam {UUID} challengeId The challenge _id
*
- * @apiSuccess {object} data An empty object
+ * @apiSuccess {Object} data An empty object
*/
api.leaveChallenge = {
method: 'POST',
@@ -246,7 +246,7 @@ api.getUserChallenges = {
* @apiName GetGroupChallenges
* @apiGroup Challenge
*
- * @apiParam {groupId} groupId The group _id
+ * @apiParam {UUID} groupId The group _id
*
* @apiSuccess {Array} data An array of challenges sorted with official challenges first, followed by the challenges in order from newest to oldest
*/
@@ -291,7 +291,7 @@ api.getGroupChallenges = {
*
* @apiParam {UUID} challengeId The challenge _id
*
- * @apiSuccess {object} data The challenge object
+ * @apiSuccess {Object} data The challenge object
*/
api.getChallenge = {
method: 'GET',
@@ -334,7 +334,7 @@ api.getChallenge = {
*
* @apiParam {UUID} challengeId The challenge _id
*
- * @apiSuccess {string} challenge A csv file
+ * @apiSuccess {String} challenge A csv file
*/
api.exportChallengeCsv = {
method: 'GET',
@@ -407,7 +407,7 @@ api.exportChallengeCsv = {
*
* @apiParam {UUID} challengeId The challenge _id
*
- * @apiSuccess {object} data The updated challenge
+ * @apiSuccess {Object} data The updated challenge
*/
api.updateChallenge = {
method: 'PUT',
@@ -453,7 +453,7 @@ api.updateChallenge = {
*
* @apiParam {UUID} challengeId The _id for the challenge to delete
*
- * @apiSuccess {object} data An empty object
+ * @apiSuccess {Object} data An empty object
*/
api.deleteChallenge = {
method: 'DELETE',
@@ -486,7 +486,7 @@ api.deleteChallenge = {
* @apiParam {UUID} challengeId The _id for the challenge to close with a winner
* @apiParam {UUID} winnerId The _id of the winning user
*
- * @apiSuccess {object} data An empty object
+ * @apiSuccess {Object} data An empty object
*/
api.selectChallengeWinner = {
method: 'POST',
diff --git a/website/server/controllers/api-v3/chat.js b/website/server/controllers/api-v3/chat.js
index ddc9182ed1..365dac2ba1 100644
--- a/website/server/controllers/api-v3/chat.js
+++ b/website/server/controllers/api-v3/chat.js
@@ -1,14 +1,14 @@
-import { authWithHeaders } from '../../middlewares/api-v3/auth';
+import { authWithHeaders } from '../../middlewares/auth';
import { model as Group } from '../../models/group';
import { model as User } from '../../models/user';
import {
NotFound,
NotAuthorized,
-} from '../../libs/api-v3/errors';
+} from '../../libs/errors';
import _ from 'lodash';
-import { removeFromArray } from '../../libs/api-v3/collectionManipulators';
-import { getUserInfo, getGroupUrl, sendTxn } from '../../libs/api-v3/email';
-import pusher from '../../libs/api-v3/pusher';
+import { removeFromArray } from '../../libs/collectionManipulators';
+import { getUserInfo, getGroupUrl, sendTxn } from '../../libs/email';
+import pusher from '../../libs/pusher';
import nconf from 'nconf';
import Bluebird from 'bluebird';
@@ -24,7 +24,7 @@ let api = {};
* @apiName GetChat
* @apiGroup Chat
*
- * @apiParam {string} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
+ * @apiParam {String} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
*
* @apiSuccess {Array} data An array of chat messages
*/
@@ -54,7 +54,7 @@ api.getChat = {
* @apiGroup Chat
*
* @apiParam {UUID} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
- * @apiParam {string} message Body parameter - message The message to post
+ * @apiParam {String} message Body parameter - message The message to post
* @apiParam {UUID} previousMsg Query parameter - The previous chat message which will force a return of the full group chat
*
* @apiSuccess data An array of chat messages if a new message was posted after previousMsg, otherwise the posted message
@@ -166,7 +166,7 @@ api.likeChat = {
* @apiParam {UUID} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
* @apiParam {UUID} chatId The chat message id
*
- * @apiSuccess {object} data The flagged chat message
+ * @apiSuccess {Object} data The flagged chat message
*/
api.flagChat = {
method: 'POST',
@@ -362,7 +362,7 @@ api.seenChat = {
* @apiName DeleteChat
* @apiGroup Chat
*
- * @apiParam {string} previousMsg Query parameter - The last message fetched by the client so that the whole chat will be returned only if new messages have been posted in the meantime
+ * @apiParam {String} previousMsg Query parameter - The last message fetched by the client so that the whole chat will be returned only if new messages have been posted in the meantime
* @apiParam {UUID} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
* @apiParam {UUID} chatId The chat message id
*
diff --git a/website/server/controllers/api-v3/content.js b/website/server/controllers/api-v3/content.js
index 0235f61645..02b950cd8f 100644
--- a/website/server/controllers/api-v3/content.js
+++ b/website/server/controllers/api-v3/content.js
@@ -1,10 +1,10 @@
import common from '../../../../common';
import _ from 'lodash';
-import { langCodes } from '../../libs/api-v3/i18n';
+import { langCodes } from '../../libs/i18n';
import Bluebird from 'bluebird';
import fsCallback from 'fs';
import path from 'path';
-import logger from '../../libs/api-v3/logger';
+import logger from '../../libs/logger';
// Transform fs methods that accept callbacks in ones that return promises
const fs = {
@@ -67,7 +67,7 @@ async function saveContentToDisk (language, content) {
* @apiName ContentGet
* @apiGroup Content
*
- * @apiParam {string} language Query parameter, the language code used for the items' strings. Defaulting to english
+ * @apiParam {String} language Query parameter, the language code used for the items' strings. Defaulting to english
*
* @apiSuccess {Object} data All the content available on Habitica
*/
diff --git a/website/server/controllers/api-v3/coupon.js b/website/server/controllers/api-v3/coupon.js
index 4dc434aa8c..3d7db33459 100644
--- a/website/server/controllers/api-v3/coupon.js
+++ b/website/server/controllers/api-v3/coupon.js
@@ -1,9 +1,9 @@
-import csvStringify from '../../libs/api-v3/csvStringify';
+import csvStringify from '../../libs/csvStringify';
import {
authWithHeaders,
authWithSession,
-} from '../../middlewares/api-v3/auth';
-import { ensureSudo } from '../../middlewares/api-v3/ensureAccessRight';
+} from '../../middlewares/auth';
+import { ensureSudo } from '../../middlewares/ensureAccessRight';
import { model as Coupon } from '../../models/coupon';
import _ from 'lodash';
import couponCode from 'coupon-code';
@@ -17,7 +17,7 @@ let api = {};
* @apiName GetCoupons
* @apiGroup Coupon
*
- * @apiSuccess {string} Coupons in CSV format
+ * @apiSuccess {String} Coupons in CSV format
*/
api.getCoupons = {
method: 'GET',
@@ -46,10 +46,10 @@ api.getCoupons = {
* @apiName GenerateCoupons
* @apiGroup Coupon
*
- * @apiParam {string} event The event for which the coupon should be generated
- * @apiParam {number} count Query parameter to specify the number of coupon codes to generate
+ * @apiParam {String} event The event for which the coupon should be generated
+ * @apiParam {Number} count Query parameter to specify the number of coupon codes to generate
*
- * @apiSuccess {array} data Generated coupons
+ * @apiSuccess {Array} data Generated coupons
*/
api.generateCoupons = {
method: 'POST',
@@ -73,9 +73,9 @@ api.generateCoupons = {
* @apiName EnterCouponCode
* @apiGroup Coupon
*
- * @apiParam {string} code The coupon code to apply
+ * @apiParam {String} code The coupon code to apply
*
- * @apiSuccess {object} data User object
+ * @apiSuccess {Object} data User object
*/
api.enterCouponCode = {
method: 'POST',
@@ -100,7 +100,7 @@ api.enterCouponCode = {
* @apiName ValidateCoupon
* @apiGroup Coupon
*
- * @apiSuccess {boolean} data.valid True or false
+ * @apiSuccess {Boolean} data.valid True or false
*/
api.validateCoupon = {
method: 'POST',
diff --git a/website/server/controllers/api-v3/debug.js b/website/server/controllers/api-v3/debug.js
index 8533d995ff..67d38bef49 100644
--- a/website/server/controllers/api-v3/debug.js
+++ b/website/server/controllers/api-v3/debug.js
@@ -1,6 +1,6 @@
-import { authWithHeaders } from '../../middlewares/api-v3/auth';
-import ensureDevelpmentMode from '../../middlewares/api-v3/ensureDevelpmentMode';
-import { BadRequest } from '../../libs/api-v3/errors';
+import { authWithHeaders } from '../../middlewares/auth';
+import ensureDevelpmentMode from '../../middlewares/ensureDevelpmentMode';
+import { BadRequest } from '../../libs/errors';
import { content } from '../../../../common';
import _ from 'lodash';
diff --git a/website/server/controllers/api-v3/groups.js b/website/server/controllers/api-v3/groups.js
index 75c089a5c6..f909bc188e 100644
--- a/website/server/controllers/api-v3/groups.js
+++ b/website/server/controllers/api-v3/groups.js
@@ -1,4 +1,4 @@
-import { authWithHeaders } from '../../middlewares/api-v3/auth';
+import { authWithHeaders } from '../../middlewares/auth';
import Bluebird from 'bluebird';
import _ from 'lodash';
import {
@@ -15,12 +15,12 @@ import {
NotFound,
BadRequest,
NotAuthorized,
-} from '../../libs/api-v3/errors';
-import { removeFromArray } from '../../libs/api-v3/collectionManipulators';
-import { sendTxn as sendTxnEmail } from '../../libs/api-v3/email';
-import { encrypt } from '../../libs/api-v3/encryption';
-import sendPushNotification from '../../libs/api-v3/pushNotifications';
-import pusher from '../../libs/api-v3/pusher';
+} from '../../libs/errors';
+import { removeFromArray } from '../../libs/collectionManipulators';
+import { sendTxn as sendTxnEmail } from '../../libs/email';
+import { encrypt } from '../../libs/encryption';
+import sendPushNotification from '../../libs/pushNotifications';
+import pusher from '../../libs/pusher';
let api = {};
@@ -76,7 +76,7 @@ api.createGroup = {
* @apiName GetGroups
* @apiGroup Group
*
- * @apiParam {string} type The type of groups to retrieve. Must be a query string representing a list of values like 'tavern,party'. Possible values are party, guilds, privateGuilds, publicGuilds, tavern
+ * @apiParam {String} type The type of groups to retrieve. Must be a query string representing a list of values like 'tavern,party'. Possible values are party, guilds, privateGuilds, publicGuilds, tavern
*
* @apiSuccess {Array} data An array of the requested groups
*/
@@ -107,7 +107,7 @@ api.getGroups = {
* @apiName GetGroup
* @apiGroup Group
*
- * @apiParam {string} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
+ * @apiParam {String} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
*
* @apiSuccess {Object} data The group object
*/
@@ -142,7 +142,7 @@ api.getGroup = {
* @apiName UpdateGroup
* @apiGroup Group
*
- * @apiParam {string} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
+ * @apiParam {String} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
*
* @apiSuccess {Object} data The updated group
*/
@@ -328,8 +328,8 @@ api.rejectGroupInvite = {
* @apiName LeaveGroup
* @apiGroup Group
*
- * @apiParam {string} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
- * @apiParam {string="remove-all","keep-all"} keep Query parameter - Whether to keep or not challenges' tasks. Defaults to keep-all
+ * @apiParam {String} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
+ * @apiParam {String="remove-all","keep-all"} keep Query parameter - Whether to keep or not challenges' tasks. Defaults to keep-all
*
* @apiSuccess {Object} data An empty object
*/
@@ -384,9 +384,9 @@ function _sendMessageToRemoved (group, removedUser, message) {
* @apiName RemoveGroupMember
* @apiGroup Group
*
- * @apiParam {string} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
+ * @apiParam {String} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
* @apiParam {UUID} memberId The _id of the member to remove
- * @apiParam {string} message Query parameter - The message to send to the removed members
+ * @apiParam {String} message Query parameter - The message to send to the removed members
*
* @apiSuccess {Object} data An empty object
*/
@@ -436,7 +436,7 @@ api.removeGroupMember = {
group.quest.leader = undefined;
} else if (group.quest && group.quest.members) {
// remove member from quest
- group.quest.members[member._id] = undefined;
+ delete group.quest.members[member._id];
group.markModified('quest.members');
}
@@ -606,13 +606,13 @@ async function _inviteByEmail (invite, group, inviter, req, res) {
* @apiName InviteToGroup
* @apiGroup Group
*
- * @apiParam {string} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
+ * @apiParam {String} groupId The group _id ('party' for the user party and 'habitrpg' for tavern are accepted)
*
- * @apiParam {array} emails Body parameter - An array of emails addresses to invite (optional)
- * @apiParam {array} uuids Body parameter - An array of uuids to invite (optional)
- * @apiParam {string} inviter Body parameter - The inviters' name (optional)
+ * @apiParam {Array} emails Body parameter - An array of emails addresses to invite (optional)
+ * @apiParam {Array} uuids Body parameter - An array of uuids to invite (optional)
+ * @apiParam {String} inviter Body parameter - The inviters' name (optional)
*
- * @apiSuccess {array} data The invites
+ * @apiSuccess {Array} data The invites
*/
api.inviteToGroup = {
method: 'POST',
diff --git a/website/server/controllers/api-v3/hall.js b/website/server/controllers/api-v3/hall.js
index cf589eef84..218fe5291a 100644
--- a/website/server/controllers/api-v3/hall.js
+++ b/website/server/controllers/api-v3/hall.js
@@ -1,9 +1,9 @@
-import { authWithHeaders } from '../../middlewares/api-v3/auth';
-import { ensureAdmin } from '../../middlewares/api-v3/ensureAccessRight';
+import { authWithHeaders } from '../../middlewares/auth';
+import { ensureAdmin } from '../../middlewares/ensureAccessRight';
import { model as User } from '../../models/user';
import {
NotFound,
-} from '../../libs/api-v3/errors';
+} from '../../libs/errors';
import _ from 'lodash';
let api = {};
diff --git a/website/server/controllers/api-v3/members.js b/website/server/controllers/api-v3/members.js
index f539dbc469..43d081a481 100644
--- a/website/server/controllers/api-v3/members.js
+++ b/website/server/controllers/api-v3/members.js
@@ -1,4 +1,4 @@
-import { authWithHeaders } from '../../middlewares/api-v3/auth';
+import { authWithHeaders } from '../../middlewares/auth';
import {
model as User,
publicFields as memberFields,
@@ -9,14 +9,14 @@ import { model as Challenge } from '../../models/challenge';
import {
NotFound,
NotAuthorized,
-} from '../../libs/api-v3/errors';
+} from '../../libs/errors';
import * as Tasks from '../../models/task';
import {
getUserInfo,
sendTxn as sendTxnEmail,
-} from '../../libs/api-v3/email';
+} from '../../libs/email';
import Bluebird from 'bluebird';
-import sendPushNotification from '../../libs/api-v3/pushNotifications';
+import sendPushNotification from '../../libs/pushNotifications';
let api = {};
@@ -28,7 +28,7 @@ let api = {};
*
* @apiParam {UUID} memberId The member's id
*
- * @apiSuccess {object} data The member object
+ * @apiSuccess {Object} data The member object
*/
api.getMember = {
method: 'GET',
@@ -50,7 +50,10 @@ api.getMember = {
if (!member) throw new NotFound(res.t('userWithIDNotFound', {userId: memberId}));
// manually call toJSON with minimize: true so empty paths aren't returned
- res.respond(200, member.toJSON({minimize: true}));
+ let memberToJSON = member.toJSON({minimize: true});
+ member.addComputedStatsToJSONObj(memberToJSON);
+
+ res.respond(200, memberToJSON);
},
};
@@ -100,6 +103,7 @@ function _getMembersForItem (type) {
let query = {};
let fields = nameFields;
+ let addComputedStats = false; // add computes stats to the member info when items and stats are available
if (type === 'challenge-members') {
query.challenges = challenge._id;
@@ -111,6 +115,7 @@ function _getMembersForItem (type) {
if (req.query.includeAllPublicFields === 'true') {
fields = memberFields;
+ addComputedStats = true;
}
}
} else if (type === 'group-invites') {
@@ -138,7 +143,13 @@ function _getMembersForItem (type) {
.exec();
// manually call toJSON with minimize: true so empty paths aren't returned
- res.respond(200, members.map(member => member.toJSON({minimize: true})));
+ let membersToJSON = members.map(member => {
+ let memberToJSON = member.toJSON({minimize: true});
+ if (addComputedStats) member.addComputedStatsToJSONObj(memberToJSON);
+
+ return memberToJSON;
+ });
+ res.respond(200, membersToJSON);
};
}
@@ -194,7 +205,7 @@ api.getInvitesForGroup = {
*
* @apiParam {UUID} challengeId The challenge id
* @apiParam {UUID} lastId Query parameter to specify the last member returned in a previous request to this route and get the next batch of results
- * @apiParam {string} includeAllMembers BETA Query parameter - If 'true' all challenge members are returned
+ * @apiParam {String} includeAllMembers BETA Query parameter - If 'true' all challenge members are returned
* @apiSuccess {array} data An array of members, sorted by _id
*/
@@ -214,7 +225,7 @@ api.getMembersForChallenge = {
* @apiParam {UUID} challengeId The challenge _id
* @apiParam {UUID} member The member _id
*
- * @apiSuccess {object} data Return an object with member _id, profile.name and a tasks object with the challenge tasks for the member
+ * @apiSuccess {Object} data Return an object with member _id, profile.name and a tasks object with the challenge tasks for the member
*/
api.getChallengeMemberProgress = {
method: 'GET',
diff --git a/website/server/controllers/api-v3/modelsPaths.js b/website/server/controllers/api-v3/modelsPaths.js
index 927087df01..9c5478d124 100644
--- a/website/server/controllers/api-v3/modelsPaths.js
+++ b/website/server/controllers/api-v3/modelsPaths.js
@@ -12,9 +12,9 @@ let allModels = ['user', 'tag', 'challenge', 'group'].concat(tasksModels);
* @apiName GetUserModelPaths
* @apiGroup Meta
*
- * @apiParam {string="user","group","challenge","tag","habit","daily","todo","reward"} model The name of the model
+ * @apiParam {String="user","group","challenge","tag","habit","daily","todo","reward"} model The name of the model
*
- * @apiSuccess {object} data A key-value object made of fieldPath: fieldType (like {'field.nested': Boolean})
+ * @apiSuccess {Object} data A key-value object made of fieldPath: fieldType (like {'field.nested': Boolean})
*/
api.getModelPaths = {
method: 'GET',
diff --git a/website/server/controllers/api-v3/notifications.js b/website/server/controllers/api-v3/notifications.js
index 7130b1bc56..2fda343ac7 100644
--- a/website/server/controllers/api-v3/notifications.js
+++ b/website/server/controllers/api-v3/notifications.js
@@ -1,8 +1,8 @@
-import { authWithHeaders } from '../../middlewares/api-v3/auth';
+import { authWithHeaders } from '../../middlewares/auth';
import _ from 'lodash';
import {
NotFound,
-} from '../../libs/api-v3/errors';
+} from '../../libs/errors';
let api = {};
diff --git a/website/server/controllers/api-v3/pushNotifications.js b/website/server/controllers/api-v3/pushNotifications.js
index 49ff1abd3c..c0ed3506f2 100644
--- a/website/server/controllers/api-v3/pushNotifications.js
+++ b/website/server/controllers/api-v3/pushNotifications.js
@@ -1,8 +1,8 @@
-import { authWithHeaders } from '../../middlewares/api-v3/auth';
+import { authWithHeaders } from '../../middlewares/auth';
import {
NotAuthorized,
NotFound,
-} from '../../libs/api-v3/errors';
+} from '../../libs/errors';
let api = {};
@@ -13,11 +13,11 @@ let api = {};
* @apiName UserAddPushDevice
* @apiGroup User
*
- * @apiParam {string} regId The id of the push device
- * @apiParam {string} type The type of push device
+ * @apiParam {String} regId The id of the push device
+ * @apiParam {String} type The type of push device
*
* @apiSuccess {Object} data List of push devices
- * @apiSuccess {string} message Success message
+ * @apiSuccess {String} message Success message
*/
api.addPushDevice = {
method: 'POST',
@@ -58,10 +58,10 @@ api.addPushDevice = {
* @apiName UserRemovePushDevice
* @apiGroup User
*
- * @apiParam {string} regId The id of the push device
+ * @apiParam {String} regId The id of the push device
*
* @apiSuccess {Object} data List of push devices
- * @apiSuccess {string} message Success message
+ * @apiSuccess {String} message Success message
*/
api.removePushDevice = {
method: 'DELETE',
diff --git a/website/server/controllers/api-v3/quests.js b/website/server/controllers/api-v3/quests.js
index e5afa27abb..d06638c9ce 100644
--- a/website/server/controllers/api-v3/quests.js
+++ b/website/server/controllers/api-v3/quests.js
@@ -1,7 +1,7 @@
import _ from 'lodash';
import Bluebird from 'bluebird';
-import { authWithHeaders } from '../../middlewares/api-v3/auth';
-import analytics from '../../libs/api-v3/analyticsService';
+import { authWithHeaders } from '../../middlewares/auth';
+import analytics from '../../libs/analyticsService';
import {
model as Group,
} from '../../models/group';
@@ -10,13 +10,13 @@ import {
NotFound,
NotAuthorized,
BadRequest,
-} from '../../libs/api-v3/errors';
+} from '../../libs/errors';
import {
getUserInfo,
sendTxn as sendTxnEmail,
-} from '../../libs/api-v3/email';
+} from '../../libs/email';
import common from '../../../../common';
-import sendPushNotification from '../../libs/api-v3/pushNotifications';
+import sendPushNotification from '../../libs/pushNotifications';
const questScrolls = common.content.quests;
@@ -34,8 +34,8 @@ let api = {};
* @apiName InviteToQuest
* @apiGroup Group
*
- * @apiParam {string} groupId The group _id (or 'party')
- * @apiParam {string} questKey
+ * @apiParam {String} groupId The group _id (or 'party')
+ * @apiParam {String} questKey
*
* @apiSuccess {Object} data Quest object
*/
@@ -145,7 +145,7 @@ api.inviteToQuest = {
* @apiName AcceptQuest
* @apiGroup Group
*
- * @apiParam {string} groupId The group _id (or 'party')
+ * @apiParam {String} groupId The group _id (or 'party')
*
* @apiSuccess {Object} data Quest Object
*/
@@ -161,6 +161,9 @@ api.acceptQuest = {
let validationErrors = req.validationErrors();
if (validationErrors) throw validationErrors;
+ user.party.quest.RSVPNeeded = false;
+ await user.save();
+
let group = await Group.getGroup({user, groupId: req.params.groupId, fields: 'type quest'});
if (!group) throw new NotFound(res.t('groupNotFound'));
@@ -171,16 +174,12 @@ api.acceptQuest = {
group.markModified('quest');
group.quest.members[user._id] = true;
- user.party.quest.RSVPNeeded = false;
if (canStartQuestAutomatically(group)) {
await group.startQuest(user);
}
- let [savedGroup] = await Bluebird.all([
- group.save(),
- user.save(),
- ]);
+ let savedGroup = await group.save();
res.respond(200, savedGroup.quest);
@@ -202,7 +201,7 @@ api.acceptQuest = {
* @apiName RejectQuest
* @apiGroup Group
*
- * @apiParam {string} groupId The group _id (or 'party')
+ * @apiParam {String} groupId The group _id (or 'party')
*
* @apiSuccess {Object} data Quest Object
*/
@@ -218,6 +217,10 @@ api.rejectQuest = {
let validationErrors = req.validationErrors();
if (validationErrors) throw validationErrors;
+ user.party.quest = Group.cleanQuestProgress();
+ user.markModified('party.quest');
+ await user.save();
+
let group = await Group.getGroup({user, groupId: req.params.groupId, fields: 'type quest'});
if (!group) throw new NotFound(res.t('groupNotFound'));
if (group.type !== 'party') throw new NotAuthorized(res.t('guildQuestsNotSupported'));
@@ -229,17 +232,11 @@ api.rejectQuest = {
group.quest.members[user._id] = false;
group.markModified('quest.members');
- user.party.quest = Group.cleanQuestProgress();
- user.markModified('party.quest');
-
if (canStartQuestAutomatically(group)) {
await group.startQuest(user);
}
- let [savedGroup] = await Bluebird.all([
- group.save(),
- user.save(),
- ]);
+ let savedGroup = await group.save();
res.respond(200, savedGroup.quest);
@@ -261,7 +258,7 @@ api.rejectQuest = {
* @apiName ForceQuestStart
* @apiGroup Group
*
- * @apiParam {string} groupId The group _id (or 'party')
+ * @apiParam {String} groupId The group _id (or 'party')
*
* @apiSuccess {Object} data Quest Object
*/
@@ -313,7 +310,7 @@ api.forceStart = {
* @apiName CancelQuest
* @apiGroup Group
*
- * @apiParam {string} groupId The group _id (or 'party')
+ * @apiParam {String} groupId The group _id (or 'party')
*
* @apiSuccess {Object} data Quest Object
*/
@@ -362,7 +359,7 @@ api.cancelQuest = {
* @apiName AbortQuest
* @apiGroup Group
*
- * @apiParam {string} groupId The group _id (or 'party')
+ * @apiParam {String} groupId The group _id (or 'party')
*
* @apiSuccess {Object} data Quest Object
*/
@@ -415,7 +412,7 @@ api.abortQuest = {
* @apiName LeaveQuest
* @apiGroup Group
*
- * @apiParam {string} groupId The group _id (or 'party')
+ * @apiParam {String} groupId The group _id (or 'party')
*
* @apiSuccess {Object} data Quest Object
*/
diff --git a/website/server/controllers/api-v3/shops.js b/website/server/controllers/api-v3/shops.js
new file mode 100644
index 0000000000..69bfa6deb8
--- /dev/null
+++ b/website/server/controllers/api-v3/shops.js
@@ -0,0 +1,123 @@
+import { authWithHeaders } from '../../middlewares/auth';
+import { shops } from '../../../../common/';
+
+let api = {};
+
+/**
+ * @apiIgnore
+ * @api {get} /api/v3/shops/market get the available items for the market
+ * @apiVersion 3.0.0
+ * @apiName GetMarketItems
+ * @apiGroup Shops
+ *
+ * @apiSuccess {Object} data List of push devices
+ * @apiSuccess {string} message Success message
+ */
+api.getMarketItems = {
+ method: 'GET',
+ url: '/shops/market',
+ middlewares: [authWithHeaders()],
+ async handler (req, res) {
+ let user = res.locals.user;
+
+ let resObject = {
+ identifier: 'market',
+ text: res.t('market'),
+ notes: res.t('welcomeMarketMobile'),
+ imageName: 'npc_alex',
+ categories: shops.getMarketCategories(user, req.language),
+ };
+
+ res.respond(200, resObject);
+ },
+};
+
+/**
+ * @apiIgnore
+ * @api {get} /api/v3/shops/quests get the available items for the quests shop
+ * @apiVersion 3.0.0
+ * @apiName GetQuestShopItems
+ * @apiGroup Shops
+ *
+ * @apiSuccess {Object} data List of push devices
+ * @apiSuccess {string} message Success message
+ */
+api.getQuestShopItems = {
+ method: 'GET',
+ url: '/shops/quests',
+ middlewares: [authWithHeaders()],
+ async handler (req, res) {
+ let user = res.locals.user;
+
+ let resObject = {
+ identifier: 'questShop',
+ text: res.t('quests'),
+ notes: res.t('ianTextMobile'),
+ imageName: 'npc_ian',
+ categories: shops.getQuestShopCategories(user, req.language),
+ };
+
+ res.respond(200, resObject);
+ },
+};
+
+/**
+ * @apiIgnore
+ * @api {get} /api/v3/shops/time-travelers get the available items for the time travelers shop
+ * @apiVersion 3.0.0
+ * @apiName GetTimeTravelersShopItems
+ * @apiGroup Shops
+ *
+ * @apiSuccess {Object} data List of push devices
+ * @apiSuccess {string} message Success message
+ */
+api.getTimeTravelerShopItems = {
+ method: 'GET',
+ url: '/shops/time-travelers',
+ middlewares: [authWithHeaders()],
+ async handler (req, res) {
+ let user = res.locals.user;
+ let hasTrinkets = user.purchased.plan.consecutive.trinkets > 0;
+
+ let resObject = {
+ identifier: 'timeTravelersShop',
+ text: res.t('timeTravelers'),
+ notes: hasTrinkets ? res.t('timeTravelersPopover') : res.t('timeTravelersPopoverNoSubMobile'),
+ imageName: hasTrinkets ? 'npc_timetravelers_active' : 'npc_timetravelers',
+ categories: shops.getTimeTravelersCategories(user, req.language),
+ };
+
+ res.respond(200, resObject);
+ },
+};
+
+/**
+ * @apiIgnore
+ * @api {get} /api/v3/shops/seasonal get the available items for the seasonal shop
+ * @apiVersion 3.0.0
+ * @apiName GetSeasonalShopItems
+ * @apiGroup Shops
+ *
+ * @apiSuccess {Object} data List of push devices
+ * @apiSuccess {string} message Success message
+ */
+api.getSeasonalShopItems = {
+ method: 'GET',
+ url: '/shops/seasonal',
+ middlewares: [authWithHeaders()],
+ async handler (req, res) {
+ let user = res.locals.user;
+
+ let resObject = {
+ identifier: 'seasonalShop',
+ text: res.t('seasonalShop'),
+ notes: res.t('seasonalShopClosedText'),
+ imageName: 'seasonalshop_closed',
+ categories: shops.getSeasonalShopCategories(user, req.language),
+ };
+
+ res.respond(200, resObject);
+ },
+};
+
+module.exports = api;
diff --git a/website/server/controllers/api-v3/status.js b/website/server/controllers/api-v3/status.js
index 68c232463f..dbd685bed2 100644
--- a/website/server/controllers/api-v3/status.js
+++ b/website/server/controllers/api-v3/status.js
@@ -6,7 +6,7 @@ let api = {};
* @apiName GetStatus
* @apiGroup Status
*
- * @apiSuccess {status} data.status 'up' if everything is ok
+ * @apiSuccess {String} data.status 'up' if everything is ok
*/
api.getStatus = {
method: 'GET',
diff --git a/website/server/controllers/api-v3/tags.js b/website/server/controllers/api-v3/tags.js
index 62e740a225..a7c2a6ae5e 100644
--- a/website/server/controllers/api-v3/tags.js
+++ b/website/server/controllers/api-v3/tags.js
@@ -1,11 +1,11 @@
-import { authWithHeaders } from '../../middlewares/api-v3/auth';
+import { authWithHeaders } from '../../middlewares/auth';
import { model as Tag } from '../../models/tag';
import * as Tasks from '../../models/task';
import {
NotFound,
-} from '../../libs/api-v3/errors';
+} from '../../libs/errors';
import _ from 'lodash';
-import { removeFromArray } from '../../libs/api-v3/collectionManipulators';
+import { removeFromArray } from '../../libs/collectionManipulators';
let api = {};
@@ -59,7 +59,7 @@ api.getTags = {
*
* @apiParam {UUID} tagId The tag _id
*
- * @apiSuccess {object} data The tag object
+ * @apiSuccess {Object} data The tag object
*/
api.getTag = {
method: 'GET',
@@ -87,7 +87,7 @@ api.getTag = {
*
* @apiParam {UUID} tagId The tag _id
*
- * @apiSuccess {object} data The updated tag
+ * @apiSuccess {Object} data The updated tag
*/
api.updateTag = {
method: 'PUT',
@@ -119,10 +119,10 @@ api.updateTag = {
* @apiName ReorderTags
* @apiGroup Tag
*
- * @apiParam {tagId} UUID Id of the tag to move
- * @apiParam {to} number Position the tag is moving to
+ * @apiParam {UUID} tagId Id of the tag to move
+ * @apiParam {Number} to Position the tag is moving to
*
- * @apiSuccess {object} data An empty object
+ * @apiSuccess {Object} data An empty object
*/
api.reorderTags = {
method: 'POST',
@@ -156,7 +156,7 @@ api.reorderTags = {
*
* @apiParam {UUID} tagId The tag _id
*
- * @apiSuccess {object} data An empty object
+ * @apiSuccess {Object} data An empty object
*/
api.deleteTag = {
method: 'DELETE',
diff --git a/website/server/controllers/api-v3/tasks.js b/website/server/controllers/api-v3/tasks.js
index b25a59afc4..23e2b98007 100644
--- a/website/server/controllers/api-v3/tasks.js
+++ b/website/server/controllers/api-v3/tasks.js
@@ -1,6 +1,6 @@
-import { authWithHeaders } from '../../middlewares/api-v3/auth';
-import { sendTaskWebhook } from '../../libs/api-v3/webhook';
-import { removeFromArray } from '../../libs/api-v3/collectionManipulators';
+import { authWithHeaders } from '../../middlewares/auth';
+import { sendTaskWebhook } from '../../libs/webhook';
+import { removeFromArray } from '../../libs/collectionManipulators';
import * as Tasks from '../../models/task';
import { model as Challenge } from '../../models/challenge';
import { model as Group } from '../../models/group';
@@ -8,11 +8,11 @@ import {
NotFound,
NotAuthorized,
BadRequest,
-} from '../../libs/api-v3/errors';
+} from '../../libs/errors';
import common from '../../../../common';
import Bluebird from 'bluebird';
import _ from 'lodash';
-import logger from '../../libs/api-v3/logger';
+import logger from '../../libs/logger';
let api = {};
@@ -259,9 +259,9 @@ api.getChallengeTasks = {
* @apiName GetTask
* @apiGroup Task
*
- * @apiParam {string} taskId The task _id or alias
+ * @apiParam {String} taskId The task _id or alias
*
- * @apiSuccess {object} data The task object
+ * @apiSuccess {Object} data The task object
*/
api.getTask = {
method: 'GET',
@@ -293,9 +293,9 @@ api.getTask = {
* @apiName UpdateTask
* @apiGroup Task
*
- * @apiParam {string} taskId The task _id or alias
+ * @apiParam {String} taskId The task _id or alias
*
- * @apiSuccess {object} data The updated task
+ * @apiSuccess {Object} data The updated task
*/
api.updateTask = {
method: 'PUT',
@@ -379,12 +379,12 @@ function _generateWebhookTaskData (task, direction, delta, stats, user) {
* @apiName ScoreTask
* @apiGroup Task
*
- * @apiParam {string} taskId The task _id or alias
- * @apiParam {string="up","down"} direction The direction for scoring the task
+ * @apiParam {String} taskId The task _id or alias
+ * @apiParam {String="up","down"} direction The direction for scoring the task
*
- * @apiSuccess {object} data._tmp If an item was dropped it'll be returned in te _tmp object
- * @apiSuccess {number} data.delta
- * @apiSuccess {object} data The user stats
+ * @apiSuccess {Object} data._tmp If an item was dropped it'll be returned in te _tmp object
+ * @apiSuccess {Number} data.delta The delta
+ * @apiSuccess {Object} data The user stats
*/
api.scoreTask = {
method: 'POST',
@@ -462,10 +462,10 @@ api.scoreTask = {
* @apiName MoveTask
* @apiGroup Task
*
- * @apiParam {string} taskId The task _id or alias
+ * @apiParam {String} taskId The task _id or alias
* @apiParam {Number} position Query parameter - Where to move the task (-1 means push to bottom). First position is 0
*
- * @apiSuccess {array} data The new tasks order (user.tasksOrder.{task.type}s)
+ * @apiSuccess {Array} data The new tasks order (user.tasksOrder.{task.type}s)
*/
api.moveTask = {
method: 'POST',
@@ -515,9 +515,9 @@ api.moveTask = {
* @apiName AddChecklistItem
* @apiGroup Task
*
- * @apiParam {string} taskId The task _id or alias
+ * @apiParam {String} taskId The task _id or alias
*
- * @apiSuccess {object} data The updated task
+ * @apiSuccess {Object} data The updated task
*/
api.addChecklistItem = {
method: 'POST',
@@ -563,10 +563,10 @@ api.addChecklistItem = {
* @apiName ScoreChecklistItem
* @apiGroup Task
*
- * @apiParam {string} taskId The task _id or alias
+ * @apiParam {String} taskId The task _id or alias
* @apiParam {UUID} itemId The checklist item _id
*
- * @apiSuccess {object} data The updated task
+ * @apiSuccess {Object} data The updated task
*/
api.scoreCheckListItem = {
method: 'POST',
@@ -603,10 +603,10 @@ api.scoreCheckListItem = {
* @apiName UpdateChecklistItem
* @apiGroup Task
*
- * @apiParam {string} taskId The task _id or alias
+ * @apiParam {String} taskId The task _id or alias
* @apiParam {UUID} itemId The checklist item _id
*
- * @apiSuccess {object} data The updated task
+ * @apiSuccess {Object} data The updated task
*/
api.updateChecklistItem = {
method: 'PUT',
@@ -655,10 +655,10 @@ api.updateChecklistItem = {
* @apiName RemoveChecklistItem
* @apiGroup Task
*
- * @apiParam {string} taskId The task _id or alias
+ * @apiParam {String} taskId The task _id or alias
* @apiParam {UUID} itemId The checklist item _id
*
- * @apiSuccess {object} data The updated task
+ * @apiSuccess {Object} data The updated task
*/
api.removeChecklistItem = {
method: 'DELETE',
@@ -705,10 +705,10 @@ api.removeChecklistItem = {
* @apiName AddTagToTask
* @apiGroup Task
*
- * @apiParam {string} taskId The task _id or alias
+ * @apiParam {String} taskId The task _id or alias
* @apiParam {UUID} tagId The tag id
*
- * @apiSuccess {object} data The updated task
+ * @apiSuccess {Object} data The updated task
*/
api.addTagToTask = {
method: 'POST',
@@ -746,10 +746,10 @@ api.addTagToTask = {
* @apiName RemoveTagFromTask
* @apiGroup Task
*
- * @apiParam {string} taskId The task _id or alias
+ * @apiParam {String} taskId The task _id or alias
* @apiParam {UUID} tagId The tag id
*
- * @apiSuccess {object} data The updated task
+ * @apiSuccess {Object} data The updated task
*/
api.removeTagFromTask = {
method: 'DELETE',
@@ -784,9 +784,9 @@ api.removeTagFromTask = {
* @apiGroup Task
*
* @apiParam {UUID} challengeId The challenge _id
- * @apiParam {string} keep Query parameter - keep-all or remove-all
+ * @apiParam {String} keep Query parameter - keep-all or remove-all
*
- * @apiSuccess {object} data An empty object
+ * @apiSuccess {Object} data An empty object
*/
api.unlinkAllTasks = {
method: 'POST',
@@ -845,10 +845,10 @@ api.unlinkAllTasks = {
* @apiName UnlinkOneTask
* @apiGroup Task
*
- * @apiParam {string} taskId The task _id or alias
- * @apiParam {string} keep Query parameter - keep or remove
+ * @apiParam {String} taskId The task _id or alias
+ * @apiParam {String} keep Query parameter - keep or remove
*
- * @apiSuccess {object} data An empty object
+ * @apiSuccess {Object} data An empty object
*/
api.unlinkOneTask = {
method: 'POST',
@@ -893,7 +893,7 @@ api.unlinkOneTask = {
* @apiName ClearCompletedTodos
* @apiGroup Task
*
- * @apiSuccess {object} data An empty object
+ * @apiSuccess {Object} data An empty object
*/
api.clearCompletedTodos = {
method: 'POST',
@@ -924,9 +924,9 @@ api.clearCompletedTodos = {
* @apiName DeleteTask
* @apiGroup Task
*
- * @apiParam {string} taskId The task _id or alias
+ * @apiParam {String} taskId The task _id or alias
*
- * @apiSuccess {object} data An empty object
+ * @apiSuccess {Object} data An empty object
*/
api.deleteTask = {
method: 'DELETE',
diff --git a/website/server/controllers/api-v3/user.js b/website/server/controllers/api-v3/user.js
index 8a6db2a01d..81a70b6d52 100644
--- a/website/server/controllers/api-v3/user.js
+++ b/website/server/controllers/api-v3/user.js
@@ -1,10 +1,10 @@
-import { authWithHeaders } from '../../middlewares/api-v3/auth';
+import { authWithHeaders } from '../../middlewares/auth';
import common from '../../../../common';
import {
NotFound,
BadRequest,
NotAuthorized,
-} from '../../libs/api-v3/errors';
+} from '../../libs/errors';
import * as Tasks from '../../models/task';
import {
basicFields as basicGroupFields,
@@ -13,7 +13,7 @@ import {
import { model as User } from '../../models/user';
import Bluebird from 'bluebird';
import _ from 'lodash';
-import * as passwordUtils from '../../libs/api-v3/password';
+import * as passwordUtils from '../../libs/password';
let api = {};
@@ -30,19 +30,14 @@ api.getUser = {
middlewares: [authWithHeaders()],
url: '/user',
async handler (req, res) {
- let user = res.locals.user.toJSON();
+ let user = res.locals.user;
+ let userToJSON = user.toJSON();
// Remove apiToken from response TODO make it private at the user level? returned in signup/login
- delete user.apiToken;
+ delete userToJSON.apiToken;
- // TODO move to model? (maybe virtuals, maybe in toJSON)
- // NOTE: if an item is manually added to user.stats common/fns/predictableRandom must be tweaked
- // so it's not considered. Otherwise the client will have it while the server won't and the results will be different.
- user.stats.toNextLevel = common.tnl(user.stats.lvl);
- user.stats.maxHealth = common.maxHealth;
- user.stats.maxMP = common.statsComputed(user).maxMP;
-
- return res.respond(200, user);
+ user.addComputedStatsToJSONObj(userToJSON);
+ return res.respond(200, userToJSON);
},
};
@@ -149,7 +144,7 @@ let checkPreferencePurchase = (user, path, item) => {
* @apiName UserUpdate
* @apiGroup User
*
- * @apiSuccess {object} data The updated user object
+ * @apiSuccess {Object} data The updated user object
*/
api.updateUser = {
method: 'PUT',
@@ -183,7 +178,7 @@ api.updateUser = {
* @apiName UserDelete
* @apiGroup User
*
- * @apiParam {string} password The user's password (unless it's a Facebook account)
+ * @apiParam {String} password The user's password (unless it's a Facebook account)
*
* @apiSuccess {Object} data An empty Object
*/
@@ -309,7 +304,7 @@ const partyMembersFields = 'profile.name stats achievements items.special';
* @apiName UserCast
* @apiGroup User
*
- * @apiParam {string} spellId The skill to cast
+ * @apiParam {String} spellId The skill to cast
* @apiParam {UUID} targetId Optional query parameter, the id of the target when casting a skill on a party member or a task
*
* @apiSuccess data Will return the modified targets. For party members only the necessary fields will be populated. The user is always returned.
@@ -485,7 +480,7 @@ api.sleep = {
* @apiName UserAllocate
* @apiGroup User
*
- * @apiParam {string} stat Query parameter - Defaults to 'str', mast be one of be of str, con, int or per
+ * @apiParam {String} stat Query parameter - Defaults to 'str', mast be one of be of str, con, int or per
*
* @apiSuccess {Object} data user.stats
*/
@@ -529,7 +524,7 @@ api.allocateNow = {
* @apiName UserBuy
* @apiGroup User
*
- * @apiParam {string} key The item to buy
+ * @apiParam {String} key The item to buy
*/
api.buy = {
method: 'POST',
@@ -549,13 +544,13 @@ api.buy = {
* @apiName UserBuyGear
* @apiGroup User
*
- * @apiParam {string} key The item to buy
+ * @apiParam {String} key The item to buy
*
- * @apiSuccess {object} data.items user.items
- * @apiSuccess {object} data.flags user.flags
- * @apiSuccess {object} data.achievements user.achievements
- * @apiSuccess {object} data.stats user.stats
- * @apiSuccess {string} message Success message
+ * @apiSuccess {Object} data.items user.items
+ * @apiSuccess {Object} data.flags user.flags
+ * @apiSuccess {Object} data.achievements user.achievements
+ * @apiSuccess {Object} data.stats user.stats
+ * @apiSuccess {String} message Success message
*/
api.buyGear = {
method: 'POST',
@@ -575,10 +570,10 @@ api.buyGear = {
* @apiName UserBuyArmoire
* @apiGroup User
*
- * @apiSuccess {object} data.items user.items
- * @apiSuccess {object} data.flags user.flags
- * @apiSuccess {object} data.armoire Extra item given by the armoire
- * @apiSuccess {string} message Success message
+ * @apiSuccess {Object} data.items user.items
+ * @apiSuccess {Object} data.flags user.flags
+ * @apiSuccess {Object} data.armoire Extra item given by the armoire
+ * @apiSuccess {String} message Success message
*/
api.buyArmoire = {
method: 'POST',
@@ -599,7 +594,7 @@ api.buyArmoire = {
* @apiGroup User
*
* @apiSuccess {Object} data user.stats
- * @apiSuccess {string} message Success message
+ * @apiSuccess {String} message Success message
*/
api.buyHealthPotion = {
method: 'POST',
@@ -619,11 +614,11 @@ api.buyHealthPotion = {
* @apiName UserBuyMysterySet
* @apiGroup User
*
- * @apiParam {string} key The mystery set to buy
+ * @apiParam {String} key The mystery set to buy
*
* @apiSuccess {Object} data.items user.items
* @apiSuccess {Object} data.purchasedPlanConsecutive user.purchased.plan.consecutive
- * @apiSuccess {string} message Success message
+ * @apiSuccess {String} message Success message
*/
api.buyMysterySet = {
method: 'POST',
@@ -643,10 +638,10 @@ api.buyMysterySet = {
* @apiName UserBuyQuest
* @apiGroup User
*
- * @apiParam {string} key The quest scroll to buy
+ * @apiParam {String} key The quest scroll to buy
*
* @apiSuccess {Object} data `user.items.quests`
- * @apiSuccess {string} message Success message
+ * @apiSuccess {String} message Success message
*/
api.buyQuest = {
method: 'POST',
@@ -667,11 +662,11 @@ api.buyQuest = {
* @apiName UserBuySpecialSpell
* @apiGroup User
*
- * @apiParam {string} key The special item to buy. Must be one of the keys from "content.special", such as birthday, snowball, salt.
+ * @apiParam {String} key The special item to buy. Must be one of the keys from "content.special", such as birthday, snowball, salt.
*
* @apiSuccess {Object} data.stats user.stats
* @apiSuccess {Object} data.items user.items
- * @apiSuccess {string} message Success message
+ * @apiSuccess {String} message Success message
*/
api.buySpecialSpell = {
method: 'POST',
@@ -691,11 +686,11 @@ api.buySpecialSpell = {
* @apiName UserHatch
* @apiGroup User
*
- * @apiParam {string} egg The egg to use
- * @apiParam {string} hatchingPotion The hatching potion to use
+ * @apiParam {String} egg The egg to use
+ * @apiParam {String} hatchingPotion The hatching potion to use
*
* @apiSuccess {Object} data user.items
- * @apiSuccess {string} message
+ * @apiSuccess {String} message
*/
api.hatch = {
method: 'POST',
@@ -715,11 +710,11 @@ api.hatch = {
* @apiName UserEquip
* @apiGroup User
*
- * @apiParam {string} type The type of item to equip (mount, pet, costume or equipped)
- * @apiParam {string} key The item to equip
+ * @apiParam {String} type The type of item to equip (mount, pet, costume or equipped)
+ * @apiParam {String} key The item to equip
*
* @apiSuccess {Object} data user.items
- * @apiSuccess {string} message Optional success message
+ * @apiSuccess {String} message Optional success message
*/
api.equip = {
method: 'POST',
@@ -739,11 +734,11 @@ api.equip = {
* @apiName UserFeed
* @apiGroup User
*
- * @apiParam {string} pet
- * @apiParam {string} food
+ * @apiParam {String} pet
+ * @apiParam {String} food
*
- * @apiSuccess {number} data The pet value
- * @apiSuccess {string} message Success message
+ * @apiSuccess {Number} data The pet value
+ * @apiSuccess {String} message Success message
*/
api.feed = {
method: 'POST',
@@ -764,12 +759,12 @@ api.feed = {
* @apiName UserChangeClass
* @apiGroup User
*
-* @apiParam {string} class Query parameter - ?class={warrior|rogue|wizard|healer}
+* @apiParam {String} class Query parameter - ?class={warrior|rogue|wizard|healer}
*
-* @apiSuccess {object} data.flags user.flags
-* @apiSuccess {object} data.stats user.stats
-* @apiSuccess {object} data.preferences user.preferences
-* @apiSuccess {object} data.items user.items
+* @apiSuccess {Object} data.flags user.flags
+* @apiSuccess {Object} data.stats user.stats
+* @apiSuccess {Object} data.preferences user.preferences
+* @apiSuccess {Object} data.items user.items
*/
api.changeClass = {
method: 'POST',
@@ -789,9 +784,9 @@ api.changeClass = {
* @apiName UserDisableClasses
* @apiGroup User
*
-* @apiSuccess {object} data.flags user.flags
-* @apiSuccess {object} data.stats user.stats
-* @apiSuccess {object} data.preferences user.preferences
+* @apiSuccess {Object} data.flags user.flags
+* @apiSuccess {Object} data.stats user.stats
+* @apiSuccess {Object} data.preferences user.preferences
*/
api.disableClasses = {
method: 'POST',
@@ -811,12 +806,12 @@ api.disableClasses = {
* @apiName UserPurchase
* @apiGroup User
*
-* @apiParam {string} type Type of item to purchase. Must be one of: gems, eggs, hatchingPotions, food, quests, or gear
-* @apiParam {string} key Item's key (use "gem" for purchasing gems)
+* @apiParam {String} type Type of item to purchase. Must be one of: gems, eggs, hatchingPotions, food, quests, or gear
+* @apiParam {String} key Item's key (use "gem" for purchasing gems)
*
-* @apiSuccess {object} data.items user.items
-* @apiSuccess {number} data.balance user.balance
-* @apiSuccess {string} message Success message
+* @apiSuccess {Object} data.items user.items
+* @apiSuccess {Number} data.balance user.balance
+* @apiSuccess {String} message Success message
*/
api.purchase = {
method: 'POST',
@@ -836,12 +831,12 @@ api.purchase = {
* @apiName UserPurchaseHourglass
* @apiGroup User
*
-* @apiParam {string} type The type of item to purchase (pets or mounts)
-* @apiParam {string} key Ex: {MantisShrimp-Base}. The key for the mount/pet
+* @apiParam {String} type The type of item to purchase (pets or mounts)
+* @apiParam {String} key Ex: {MantisShrimp-Base}. The key for the mount/pet
*
-* @apiSuccess {object} data.items user.items
-* @apiSuccess {object} data.purchasedPlanConsecutive user.purchased.plan.consecutive
-* @apiSuccess {string} message Success message
+* @apiSuccess {Object} data.items user.items
+* @apiSuccess {Object} data.purchasedPlanConsecutive user.purchased.plan.consecutive
+* @apiSuccess {String} message Success message
*/
api.userPurchaseHourglass = {
method: 'POST',
@@ -861,11 +856,11 @@ api.userPurchaseHourglass = {
* @apiName UserReadCard
* @apiGroup User
*
-* @apiParam {string} cardType Type of card to read
+* @apiParam {String} cardType Type of card to read
*
-* @apiSuccess {object} data.specialItems user.items.special
-* @apiSuccess {boolean} data.cardReceived user.flags.cardReceived
-* @apiSuccess {string} message Success message
+* @apiSuccess {Object} data.specialItems user.items.special
+* @apiSuccess {Boolean} data.cardReceived user.flags.cardReceived
+* @apiSuccess {String} message Success message
*/
api.readCard = {
method: 'POST',
@@ -886,7 +881,7 @@ api.readCard = {
* @apiGroup User
*
* @apiSuccess {Object} data The item obtained
-* @apiSuccess {string} message Success message
+* @apiSuccess {String} message Success message
*/
api.userOpenMysteryItem = {
method: 'POST',
@@ -906,8 +901,8 @@ api.userOpenMysteryItem = {
* @apiName UserAddWebhook
* @apiGroup User
*
-* @apiParam {string} url Body parameter - The webhook's URL
-* @apiParam {boolean} enabled Body parameter - If the webhook should be enabled
+* @apiParam {String} url Body parameter - The webhook's URL
+* @apiParam {Boolean} enabled Body parameter - If the webhook should be enabled
*
* @apiSuccess {Object} data The created webhook
*/
@@ -930,8 +925,8 @@ api.addWebhook = {
* @apiGroup User
*
* @apiParam {UUID} id The id of the webhook to update
-* @apiParam {string} url Body parameter - The webhook's URL
-* @apiParam {boolean} enabled Body parameter - If the webhook should be enabled
+* @apiParam {String} url Body parameter - The webhook's URL
+* @apiParam {Boolean} enabled Body parameter - If the webhook should be enabled
*
* @apiSuccess {Object} data The updated webhook
*/
@@ -976,7 +971,7 @@ api.deleteWebhook = {
* @apiGroup User
*
* @apiSuccess {Object} data.items `user.items.pets`
-* @apiSuccess {string} message Success message
+* @apiSuccess {String} message Success message
*/
api.userReleasePets = {
method: 'POST',
@@ -998,8 +993,8 @@ api.userReleasePets = {
* @apiSuccess {Object} data.achievements
* @apiSuccess {Object} data.items
-* @apiSuccess {number} data.balance
-* @apiSuccess {string} message Success message
+* @apiSuccess {Number} data.balance
+* @apiSuccess {String} message Success message
*/
api.userReleaseBoth = {
method: 'POST',
@@ -1020,7 +1015,7 @@ api.userReleaseBoth = {
* @apiGroup User
*
* @apiSuccess {Object} data user.items.mounts
-* @apiSuccess {string} message Success message
+* @apiSuccess {String} message Success message
*/
api.userReleaseMounts = {
method: 'POST',
@@ -1040,12 +1035,12 @@ api.userReleaseMounts = {
* @apiName UserSell
* @apiGroup User
*
-* @apiParam {string} type The type of item to sell. Must be one of: eggs, hatchingPotions, or food
-* @apiParam {string} key The key of the item
+* @apiParam {String} type The type of item to sell. Must be one of: eggs, hatchingPotions, or food
+* @apiParam {String} key The key of the item
*
* @apiSuccess {Object} data.stats
* @apiSuccess {Object} data.items
-* @apiSuccess {string} message Success message
+* @apiSuccess {String} message Success message
*/
api.userSell = {
method: 'POST',
@@ -1065,12 +1060,12 @@ api.userSell = {
* @apiName UserUnlock
* @apiGroup User
*
-* @apiParam {string} path Query parameter. The path to unlock
+* @apiParam {String} path Query parameter. The path to unlock
*
* @apiSuccess {Object} data.purchased
* @apiSuccess {Object} data.items
* @apiSuccess {Object} data.preferences
-* @apiSuccess {string} message
+* @apiSuccess {String} message
*/
api.userUnlock = {
method: 'POST',
@@ -1091,7 +1086,7 @@ api.userUnlock = {
* @apiGroup User
*
* @apiSuccess {Object} data user.items
-* @apiSuccess {string} message Success message
+* @apiSuccess {String} message Success message
*/
api.userRevive = {
method: 'POST',
@@ -1112,8 +1107,8 @@ api.userRevive = {
* @apiGroup User
*
* @apiSuccess {Object} data.user
-* @apiSuccess {array} data.tasks User's modified tasks (no rewards)
-* @apiSuccess {string} message Success message
+* @apiSuccess {Array} data.tasks User's modified tasks (no rewards)
+* @apiSuccess {String} message Success message
*/
api.userRebirth = {
method: 'POST',
@@ -1151,7 +1146,7 @@ api.userRebirth = {
*
* @apiParam {UUID} uuid The uuid of the user to block / unblock
*
- * @apiSuccess {array} data user.inbox.blocks
+ * @apiSuccess {Array} data user.inbox.blocks
**/
api.blockUser = {
method: 'POST',
@@ -1173,7 +1168,7 @@ api.blockUser = {
*
* @apiParam {UUID} id The id of the message to delete
*
- * @apiSuccess {object} data user.inbox.messages
+ * @apiSuccess {Object} data user.inbox.messages
**/
api.deleteMessage = {
method: 'DELETE',
@@ -1193,7 +1188,7 @@ api.deleteMessage = {
* @apiName clearMessages
* @apiGroup User
*
- * @apiSuccess {object} data user.inbox.messages
+ * @apiSuccess {Object} data user.inbox.messages
**/
api.clearMessages = {
method: 'DELETE',
@@ -1213,7 +1208,7 @@ api.clearMessages = {
* @apiName markPmsRead
* @apiGroup User
*
- * @apiSuccess {object} data user.inbox.messages
+ * @apiSuccess {Object} data user.inbox.messages
**/
api.markPmsRead = {
method: 'POST',
@@ -1271,7 +1266,7 @@ api.userReroll = {
*
* @apiSuccess {Object} data.user
* @apiSuccess {Object} data.tasksToRemove IDs of removed tasks
-* @apiSuccess {string} message Success message
+* @apiSuccess {String} message Success message
*/
api.userReset = {
method: 'POST',
diff --git a/website/server/controllers/top-level/dataexport.js b/website/server/controllers/top-level/dataexport.js
index 1135c1ce6d..c042198a11 100644
--- a/website/server/controllers/top-level/dataexport.js
+++ b/website/server/controllers/top-level/dataexport.js
@@ -1,21 +1,21 @@
-import { authWithSession } from '../../middlewares/api-v3/auth';
+import { authWithSession } from '../../middlewares/auth';
import { model as User } from '../../models/user';
import * as Tasks from '../../models/task';
import {
NotFound,
-} from '../../libs/api-v3/errors';
+} from '../../libs/errors';
import _ from 'lodash';
-import csvStringify from '../../libs/api-v3/csvStringify';
+import csvStringify from '../../libs/csvStringify';
import moment from 'moment';
import js2xml from 'js2xmlparser';
import Pageres from 'pageres';
import nconf from 'nconf';
import got from 'got';
import Bluebird from 'bluebird';
-import locals from '../../middlewares/api-v3/locals';
+import locals from '../../middlewares/locals';
import {
S3,
-} from '../../libs/api-v3/aws';
+} from '../../libs/aws';
const S3_BUCKET = nconf.get('S3:bucket');
@@ -25,12 +25,12 @@ let api = {};
/**
* @api {get} /export/history.csv Export user tasks history in CSV format
- * @apiDescription History is only available for habits and dailys so todos and rewards won't be included. NOTE: Part of the private API that may change at any time.
+ * @apiDescription History is only available for habits and dailies so todos and rewards won't be included. NOTE: Part of the private API that may change at any time.
* @apiVersion 3.0.0
* @apiName ExportUserHistory
* @apiGroup DataExport
*
- * @apiSuccess {string} A cvs file
+ * @apiSuccess {String} A csv file
*/
api.exportUserHistory = {
method: 'GET',
@@ -98,7 +98,7 @@ async function _getUserDataForExport (user) {
* @apiGroup DataExport
* @apiDescription NOTE: Part of the private API that may change at any time.
*
- * @apiSuccess {string} A json file
+ * @apiSuccess {String} A json file
*/
api.exportUserDataJson = {
method: 'GET',
@@ -124,7 +124,7 @@ api.exportUserDataJson = {
* @apiGroup DataExport
* @apiDescription NOTE: Part of the private API that may change at any time.
*
- * @apiSuccess {string} A xml file
+ * @apiSuccess {String} A xml file
*/
api.exportUserDataXml = {
method: 'GET',
@@ -148,7 +148,7 @@ api.exportUserDataXml = {
* @apiGroup DataExport
* @apiDescription NOTE: Part of the private API that may change at any time.
*
- * @apiSuccess {string} An html page
+ * @apiSuccess {String} An html page
*/
api.exportUserAvatarHtml = {
method: 'GET',
@@ -181,7 +181,7 @@ api.exportUserAvatarHtml = {
* @apiGroup DataExport
* @apiDescription NOTE: Part of the private API that may change at any time.
*
- * @apiSuccess {string} A png file
+ * @apiSuccess {String} A png file
*/
api.exportUserAvatarPng = {
method: 'GET',
diff --git a/website/server/controllers/top-level/email.js b/website/server/controllers/top-level/email.js
index b84f54c6e1..7a0d08212f 100644
--- a/website/server/controllers/top-level/email.js
+++ b/website/server/controllers/top-level/email.js
@@ -1,9 +1,9 @@
import { model as User } from '../../models/user';
import { model as EmailUnsubscription } from '../../models/emailUnsubscription';
-import { decrypt } from '../../libs/api-v3/encryption';
+import { decrypt } from '../../libs/encryption';
import {
NotFound,
-} from '../../libs/api-v3/errors';
+} from '../../libs/errors';
let api = {};
diff --git a/website/server/controllers/top-level/pages.js b/website/server/controllers/top-level/pages.js
index 67e8381701..8c1f9aff2e 100644
--- a/website/server/controllers/top-level/pages.js
+++ b/website/server/controllers/top-level/pages.js
@@ -1,4 +1,4 @@
-import locals from '../../middlewares/api-v3/locals';
+import locals from '../../middlewares/locals';
import _ from 'lodash';
import markdownIt from 'markdown-it';
@@ -8,7 +8,7 @@ const md = markdownIt({
let api = {};
-const TOTAL_USER_COUNT = '1,100,000';
+const TOTAL_USER_COUNT = '1,500,000';
const LOADING_SCREEN_TIPS = 32;
api.getFrontPage = {
@@ -29,7 +29,7 @@ api.getFrontPage = {
},
};
-let staticPages = ['front', 'privacy', 'terms', 'api-v2', 'features',
+let staticPages = ['front', 'privacy', 'terms', 'features',
'videos', 'contact', 'plans', 'new-stuff', 'community-guidelines',
'old-news', 'press-kit', 'faq', 'overview', 'apps',
'clear-browser-data', 'merch', 'maintenance-info'];
diff --git a/website/server/controllers/top-level/payments/amazon.js b/website/server/controllers/top-level/payments/amazon.js
index 1a28381759..413fdc8e5c 100644
--- a/website/server/controllers/top-level/payments/amazon.js
+++ b/website/server/controllers/top-level/payments/amazon.js
@@ -1,14 +1,14 @@
import {
BadRequest,
NotAuthorized,
-} from '../../../libs/api-v3/errors';
-import amzLib from '../../../libs/api-v3/amazonPayments';
+} from '../../../libs/errors';
+import amzLib from '../../../libs/amazonPayments';
import {
authWithHeaders,
authWithUrl,
-} from '../../../middlewares/api-v3/auth';
+} from '../../../middlewares/auth';
import shared from '../../../../../common';
-import payments from '../../../libs/api-v3/payments';
+import payments from '../../../libs/payments';
import moment from 'moment';
import { model as Coupon } from '../../../models/coupon';
import { model as User } from '../../../models/user';
@@ -46,7 +46,7 @@ api.verifyAccessToken = {
* @apiName AmazonCreateOrderReferenceId
* @apiGroup Payments
*
- * @apiSuccess {string} data.orderReferenceId The order reference id.
+ * @apiSuccess {String} data.orderReferenceId The order reference id.
**/
api.createOrderReferenceId = {
method: 'POST',
@@ -76,7 +76,7 @@ api.createOrderReferenceId = {
* @apiName AmazonCheckout
* @apiGroup Payments
*
- * @apiSuccess {object} data Empty object
+ * @apiSuccess {Object} data Empty object
**/
api.checkout = {
method: 'POST',
@@ -153,7 +153,7 @@ api.checkout = {
* @apiName AmazonSubscribe
* @apiGroup Payments
*
- * @apiSuccess {object} data Empty object
+ * @apiSuccess {Object} data Empty object
**/
api.subscribe = {
method: 'POST',
diff --git a/website/server/controllers/top-level/payments/iap.js b/website/server/controllers/top-level/payments/iap.js
index d894aaacf9..ee013e9e2e 100644
--- a/website/server/controllers/top-level/payments/iap.js
+++ b/website/server/controllers/top-level/payments/iap.js
@@ -1,14 +1,14 @@
import {
authWithHeaders,
authWithUrl,
-} from '../../../middlewares/api-v3/auth';
-import iap from '../../../libs/api-v3/inAppPurchases';
-import payments from '../../../libs/api-v3/payments';
+} from '../../../middlewares/auth';
+import iap from '../../../libs/inAppPurchases';
+import payments from '../../../libs/payments';
import {
NotAuthorized,
-} from '../../../libs/api-v3/errors';
+} from '../../../libs/errors';
import { model as IapPurchaseReceipt } from '../../../models/iapPurchaseReceipt';
-import logger from '../../../libs/api-v3/logger';
+import logger from '../../../libs/logger';
let api = {};
diff --git a/website/server/controllers/top-level/payments/paypal.js b/website/server/controllers/top-level/payments/paypal.js
index 0bc7b45ef3..c20260b1ea 100644
--- a/website/server/controllers/top-level/payments/paypal.js
+++ b/website/server/controllers/top-level/payments/paypal.js
@@ -3,7 +3,7 @@
import nconf from 'nconf';
import moment from 'moment';
import _ from 'lodash';
-import payments from '../../../libs/api-v3/payments';
+import payments from '../../../libs/payments';
import ipn from 'paypal-ipn';
import paypal from 'paypal-rest-sdk';
import shared from '../../../../../common';
@@ -14,11 +14,11 @@ import { model as User } from '../../../models/user';
import {
authWithUrl,
authWithSession,
-} from '../../../middlewares/api-v3/auth';
+} from '../../../middlewares/auth';
import {
BadRequest,
NotAuthorized,
-} from '../../../libs/api-v3/errors';
+} from '../../../libs/errors';
const BASE_URL = nconf.get('BASE_URL');
diff --git a/website/server/controllers/top-level/payments/stripe.js b/website/server/controllers/top-level/payments/stripe.js
index ea6d665613..eb2c27f1e0 100644
--- a/website/server/controllers/top-level/payments/stripe.js
+++ b/website/server/controllers/top-level/payments/stripe.js
@@ -3,16 +3,16 @@ import shared from '../../../../../common';
import {
BadRequest,
NotAuthorized,
-} from '../../../libs/api-v3/errors';
+} from '../../../libs/errors';
import { model as Coupon } from '../../../models/coupon';
-import payments from '../../../libs/api-v3/payments';
+import payments from '../../../libs/payments';
import nconf from 'nconf';
import { model as User } from '../../../models/user';
import cc from 'coupon-code';
import {
authWithHeaders,
authWithUrl,
-} from '../../../middlewares/api-v3/auth';
+} from '../../../middlewares/auth';
const stripe = stripeModule(nconf.get('STRIPE_API_KEY'));
@@ -25,11 +25,11 @@ let api = {};
* @apiName StripeCheckout
* @apiGroup Payments
*
- * @apiParam {string} id Body parameter - The token
- * @apiParam {string} email Body parameter - the customer email
- * @apiParam {string} gift Query parameter - stringified json object, gift
- * @apiParam {string} sub Query parameter - subscription, possible values are: basic_earned, basic_3mo, basic_6mo, google_6mo, basic_12mo
- * @apiParam {string} coupon Query parameter - coupon for the matching subscription, required only for certain subscriptions
+ * @apiParam {String} id Body parameter - The token
+ * @apiParam {String} email Body parameter - the customer email
+ * @apiParam {String} gift Query parameter - stringified json object, gift
+ * @apiParam {String} sub Query parameter - subscription, possible values are: basic_earned, basic_3mo, basic_6mo, google_6mo, basic_12mo
+ * @apiParam {String} coupon Query parameter - coupon for the matching subscription, required only for certain subscriptions
*
* @apiSuccess {Object} data Empty object
**/
@@ -115,7 +115,7 @@ api.checkout = {
* @apiName StripeSubscribeEdit
* @apiGroup Payments
*
- * @apiParam {string} id Body parameter - The token
+ * @apiParam {String} id Body parameter - The token
*
* @apiSuccess {Object} data Empty object
**/
diff --git a/website/server/index.js b/website/server/index.js
index ec8e882c99..e41be424a6 100644
--- a/website/server/index.js
+++ b/website/server/index.js
@@ -14,13 +14,13 @@ require('babel-polyfill');
global.Promise = require('bluebird');
// Initialize configuration BEFORE anything
-const setupNconf = require('./libs/api-v3/setupNconf');
+const setupNconf = require('./libs/setupNconf');
setupNconf();
const nconf = require('nconf');
const cluster = require('cluster');
-const logger = require('./libs/api-v3/logger');
+const logger = require('./libs/logger');
const IS_PROD = nconf.get('IS_PROD');
const IS_DEV = nconf.get('IS_DEV');
diff --git a/website/server/libs/api-v3/amazonPayments.js b/website/server/libs/amazonPayments.js
similarity index 98%
rename from website/server/libs/api-v3/amazonPayments.js
rename to website/server/libs/amazonPayments.js
index 4d3a3756b8..bcf19417a5 100644
--- a/website/server/libs/api-v3/amazonPayments.js
+++ b/website/server/libs/amazonPayments.js
@@ -1,6 +1,6 @@
import amazonPayments from 'amazon-payments';
import nconf from 'nconf';
-import common from '../../../../common';
+import common from '../../../common';
import Bluebird from 'bluebird';
import {
BadRequest,
diff --git a/website/server/libs/api-v3/analyticsService.js b/website/server/libs/analyticsService.js
similarity index 98%
rename from website/server/libs/api-v3/analyticsService.js
rename to website/server/libs/analyticsService.js
index f4ab6e6286..664194c916 100644
--- a/website/server/libs/api-v3/analyticsService.js
+++ b/website/server/libs/analyticsService.js
@@ -7,7 +7,7 @@ import {
each,
omit,
} from 'lodash';
-import { content as Content } from '../../../../common';
+import { content as Content } from '../../../common';
const AMPLIUDE_TOKEN = nconf.get('AMPLITUDE_KEY');
const GA_TOKEN = nconf.get('GA_ID');
diff --git a/website/server/libs/api-v2/analytics.js b/website/server/libs/api-v2/analytics.js
deleted file mode 100644
index 6c1ccd3020..0000000000
--- a/website/server/libs/api-v2/analytics.js
+++ /dev/null
@@ -1,205 +0,0 @@
-require('./i18n');
-
-var _ = require('lodash');
-var Content = require('../../../../common').content;
-var Amplitude = require('amplitude');
-var googleAnalytics = require('universal-analytics');
-
-var ga;
-var amplitude;
-
-var analytics = {
- trackPurchase: trackPurchase,
- track: track
-}
-
-function init(options) {
- if(!options) { throw 'No options provided' }
-
- amplitude = new Amplitude(options.amplitudeToken);
- ga = googleAnalytics(options.googleAnalytics);
-
- return analytics;
-}
-
-function track(eventType, data) {
- _sendDataToAmplitude(eventType, data);
- _sendDataToGoogle(eventType, data);
-}
-
-function _sendDataToAmplitude(eventType, data) {
- var amplitudeData = _formatDataForAmplitude(data);
- amplitudeData.event_type = eventType;
- amplitude.track(amplitudeData).catch(function(error) {
- // @TODO log error with new relic
- });
-}
-
-function _sendDataToGoogle(eventType, data) {
- var eventData = {
- ec: data.category,
- ea: eventType
- }
-
- var label = _generateLabelForGoogleAnalytics(data);
- if(label) { eventData.el = label; }
-
- var value = _generateValueForGoogleAnalytics(data);
- if(value) { eventData.ev = value; }
-
- ga.event(eventData).send();
-}
-
-function _generateLabelForGoogleAnalytics(data) {
- var label;
- var POSSIBLE_LABELS = ['gaLabel', 'itemKey'];
-
- _(POSSIBLE_LABELS).each(function(key) {
- if(data[key]) {
- label = data[key];
- return false; // exit _.each early
- }
- }).value();
-
- return label;
-}
-
-function _generateValueForGoogleAnalytics(data) {
- var value;
- var POSSIBLE_VALUES = ['gaValue', 'gemCost', 'goldCost'];
-
- _(POSSIBLE_VALUES).each(function(key) {
- if(data[key]) {
- value = data[key];
- return false; // exit _.each early
- }
- }).value();
-
- return value;
-}
-
-function trackPurchase(data) {
- _sendPurchaseDataToAmplitude(data);
- _sendPurchaseDataToGoogle(data);
-}
-
-function _sendPurchaseDataToAmplitude(data) {
- var amplitudeData = _formatDataForAmplitude(data);
- amplitudeData.event_type = 'purchase';
- amplitudeData.revenue = data.purchaseValue;
-
- amplitude.track(amplitudeData).catch(function(error) {
- // @TODO log error with new relic
- });
-}
-
-function _formatDataForAmplitude(data) {
- var PROPERTIES_TO_SCRUB = ['uuid', 'user', 'purchaseValue', 'gaLabel', 'gaValue'];
- var event_properties = _.omit(data, PROPERTIES_TO_SCRUB);
-
- var ampData = {
- user_id: data.uuid || 'no-user-id-was-provided',
- platform: 'server',
- event_properties: event_properties
- }
-
- if(data.user) {
- ampData.user_properties = _formatUserData(data.user);
- }
-
- var itemName = _lookUpItemName(data.itemKey);
- if(itemName) {
- event_properties.itemName = itemName;
- }
-
- return ampData;
-}
-
-function _lookUpItemName(itemKey) {
- if (!itemKey) return;
-
- var gear = Content.gear.flat[itemKey];
- var egg = Content.eggs[itemKey];
- var food = Content.food[itemKey];
- var hatchingPotion = Content.hatchingPotions[itemKey];
- var quest = Content.quests[itemKey];
- var spell = Content.special[itemKey];
-
- var itemName;
-
- if (gear) {
- itemName = gear.text();
- } else if (egg) {
- itemName = egg.text() + ' Egg';
- } else if (food) {
- itemName = food.text();
- } else if (hatchingPotion) {
- itemName = hatchingPotion.text() + " Hatching Potion";
- } else if (quest) {
- itemName = quest.text();
- } else if (spell) {
- itemName = spell.text();
- }
-
- return itemName;
-}
-
-function _formatUserData(user) {
- var properties = {};
-
- if (user.stats) {
- properties.Class = user.stats.class;
- properties.Experience = Math.floor(user.stats.exp);
- properties.Gold = Math.floor(user.stats.gp);
- properties.Health = Math.ceil(user.stats.hp);
- properties.Level = user.stats.lvl;
- properties.Mana = Math.floor(user.stats.mp);
- }
-
- properties.tutorialComplete = user.flags && user.flags.tour && user.flags.tour.intro === -2;
-
- if (user.habits && user.dailys && user.todos && user.rewards) {
- properties["Number Of Tasks"] = {
- habits: user.habits.length,
- dailys: user.dailys.length,
- todos: user.todos.length,
- rewards: user.rewards.length
- };
- }
-
- if (user.contributor && user.contributor.level) {
- properties.contributorLevel = user.contributor.level;
- }
-
- if (user.purchased && user.purchased.plan.planId) {
- properties.subscription = user.purchased.plan.planId;
- }
-
- return properties;
-}
-
-function _sendPurchaseDataToGoogle(data) {
- var label = data.paymentMethod;
- var type = data.purchaseType;
- var price = data.purchaseValue;
- var qty = data.quantity;
- var sku = data.sku;
- var itemKey = data.itemPurchased;
- var variation = type;
- if(data.gift) variation += ' - Gift';
-
- var eventData = {
- ec: 'commerce',
- ea: type,
- el: label,
- ev: price
- };
-
- ga.event(eventData).send();
-
- ga.transaction(data.uuid, price)
- .item(price, qty, sku, itemKey, variation)
- .send();
-}
-
-module.exports = init;
diff --git a/website/server/libs/api-v2/buildManifest.js b/website/server/libs/api-v2/buildManifest.js
deleted file mode 100644
index bfbab1421a..0000000000
--- a/website/server/libs/api-v2/buildManifest.js
+++ /dev/null
@@ -1,59 +0,0 @@
-var fs = require('fs');
-var path = require('path');
-var nconf = require('nconf');
-var _ = require('lodash');
-var manifestFiles = require("../../../client/manifest.json");
-
-var IS_PROD = nconf.get('NODE_ENV') === 'production';
-var buildFiles = [];
-
-var walk = function(folder){
- var res = fs.readdirSync(folder);
-
- res.forEach(function(fileName){
- var file = folder + '/' + fileName;
- if(fs.statSync(file).isDirectory()){
- walk(file);
- }else{
- var relFolder = path.relative(path.join(__dirname, "/../../../build"), folder);
- var old = fileName.replace(/-.{8}(\.[\d\w]+)$/, '$1');
-
- if(relFolder){
- old = relFolder + '/' + old;
- fileName = relFolder + '/' + fileName;
- }
-
- buildFiles[old] = fileName;
- }
- });
-};
-
-walk(path.join(__dirname, "/../../../build"));
-
-var getBuildUrl = module.exports.getBuildUrl = function(url){
- if(buildFiles[url]) return '/' + buildFiles[url];
-
- return '/' + url;
-};
-
-module.exports.getManifestFiles = function(page){
- var files = manifestFiles[page];
-
- if(!files) throw new Error("Page not found!");
-
- var code = '';
-
- if(IS_PROD){
- code += ' ';
- code += '';
- }else{
- _.each(files.css, function(file){
- code += ' ';
- });
- _.each(files.js, function(file){
- code += '';
- });
- }
-
- return code;
-};
diff --git a/website/server/libs/api-v2/i18n.js b/website/server/libs/api-v2/i18n.js
deleted file mode 100644
index e8295deb03..0000000000
--- a/website/server/libs/api-v2/i18n.js
+++ /dev/null
@@ -1,180 +0,0 @@
-var fs = require('fs'),
- path = require('path'),
- _ = require('lodash'),
- User = require('../../models/user').model,
- accepts = require('accepts'),
- shared = require('../../../../common'),
- translations = {};
-
-var localePath = path.join(__dirname, "/../../../../common/locales/")
-
-var loadTranslations = function(locale){
- var files = fs.readdirSync(path.join(localePath, locale));
- translations[locale] = {};
- _.each(files, function(file){
- if(path.extname(file) !== '.json') return;
- _.merge(translations[locale], require(path.join(localePath, locale, file)));
- });
-};
-
-// First fetch english so we can merge with missing strings in other languages
-loadTranslations('en');
-
-fs.readdirSync(localePath).forEach(function(file) {
- if(file === 'en' || fs.statSync(path.join(localePath, file)).isDirectory() === false) return;
- loadTranslations(file);
- // Merge missing strings from english
- _.defaults(translations[file], translations.en);
-});
-
-var langCodes = Object.keys(translations);
-
-var avalaibleLanguages = _.map(langCodes, function(langCode){
- return {
- code: langCode,
- name: translations[langCode].languageName
- }
-});
-
-// Load MomentJS localization files
-var momentLangs = {};
-
-// Handle different language codes from MomentJS and /locales
-var momentLangsMapping = {
- 'en': 'en-gb',
- 'en_GB': 'en-gb',
- 'no': 'nn',
- 'zh': 'zh-cn',
- 'es_419': 'es'
-};
-
-var momentLangs = {};
-
-_.each(langCodes, function(code){
- var lang = _.find(avalaibleLanguages, {code: code});
- lang.momentLangCode = (momentLangsMapping[code] || code);
- try{
- // MomentJS lang files are JS files that has to be executed in the browser so we load them as plain text files
- var f = fs.readFileSync(path.join(__dirname, '/../../node_modules/moment/locale/' + lang.momentLangCode + '.js'), 'utf8');
- momentLangs[code] = f;
- }catch (e){}
-});
-
-// Remove en_GB from langCodes checked by browser to avaoi it being
-// used in place of plain original 'en'
-var defaultLangCodes = _.without(langCodes, 'en_GB');
-
-// A list of languages that have different versions
-var multipleVersionsLanguages = ['es', 'zh'];
-
-var latinAmericanSpanishes = {
- 'es-419': 'es_419',
- 'es-mx': 'es_419',
- 'es-gt': 'es_419',
- 'es-cr': 'es_419',
- 'es-pa': 'es_419',
- 'es-do': 'es_419',
- 'es-ve': 'es_419',
- 'es-co': 'es_419',
- 'es-pe': 'es_419',
- 'es-ar': 'es_419',
- 'es-ec': 'es_419',
- 'es-cl': 'es_419',
- 'es-uy': 'es_419',
- 'es-py': 'es_419',
- 'es-bo': 'es_419',
- 'es-sv': 'es_419',
- 'es-hn': 'es_419',
- 'es-ni': 'es_419',
- 'es-pr': 'es_419',
-};
-
-var chineseVersions = {
- 'zh-tw': 'zh_TW',
-};
-
-var getUserLanguage = function(req, res, next){
- var getFromBrowser = function(){
- var acceptedLanguages = accepts(req).languages();
-
- var acceptable = _(acceptedLanguages).map(function(lang){
- return lang.slice(0, 2);
- }).uniq().value();
-
- var matches = _.intersection(acceptable, defaultLangCodes);
-
- var iAcceptedCompleteLang = (matches.length > 0) ? multipleVersionsLanguages.indexOf(matches[0].toLowerCase()) : -1;
-
- if(iAcceptedCompleteLang !== -1){
- var acceptedCompleteLang = _.find(acceptedLanguages, function(accepted){
- return accepted.slice(0, 2) == multipleVersionsLanguages[iAcceptedCompleteLang];
- });
-
- if(acceptedCompleteLang){
- acceptedCompleteLang = acceptedCompleteLang.toLowerCase();
- }else{
- return 'en';
- }
-
- if(matches[0] === 'es'){
- return latinAmericanSpanishes[acceptedCompleteLang] || 'es';
- }else if(matches[0] === 'zh'){
- return chineseVersions[acceptedCompleteLang] || 'zh';
- }else{
- return en;
- }
-
- }else if(matches.length > 0){
- return matches[0].toLowerCase();
- }else{
- return 'en';
- }
- };
-
- var getFromUser = function(user){
- var lang;
- if(user && user.preferences.language && translations[user.preferences.language]){
- lang = user.preferences.language;
- }else{
- var preferred = getFromBrowser();
- lang = translations[preferred] ? preferred : 'en';
- }
- req.language = lang;
- next();
- };
-
- if(req.query.lang){
- req.language = translations[req.query.lang] ? (req.query.lang) : 'en';
- next();
- }else if(req.locals && req.locals.user){
- getFromUser(req.locals.user);
- }else if(req.session && req.session.userId){
- User.findOne({_id: req.session.userId}, 'preferences.language', function(err, user){
- if(err) return next(err);
- getFromUser(user);
- });
- }else{
- getFromUser(null);
- }
-};
-
-shared.i18n.translations = translations;
-
-module.exports = {
- translations: translations,
- avalaibleLanguages: avalaibleLanguages,
- langCodes: langCodes,
- getUserLanguage: getUserLanguage,
- momentLangs: momentLangs
-};
-
-
-// Export en strings only, temporary solution for mobile
-// This is copied from middlewares/locals#t()
-module.exports.enTranslations = function(){ // stringName and vars are the allowed parameters
- var language = _.find(avalaibleLanguages, {code: 'en'});
- //language.momentLang = ((!isStaticPage && i18n.momentLangs[language.code]) || undefined);
- var args = Array.prototype.slice.call(arguments, 0);
- args.push(language.code);
- return shared.i18n.t.apply(null, args);
-};
diff --git a/website/server/libs/api-v2/logging.js b/website/server/libs/api-v2/logging.js
deleted file mode 100644
index 454b5a5aa8..0000000000
--- a/website/server/libs/api-v2/logging.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var nconf = require('nconf');
-var winston = require('winston');
-
-var logger;
-
-if (!logger) {
- logger = new (winston.Logger)({});
- logger.add(winston.transports.Console, {colorize:true}); // TODO remove
-
- if (nconf.get('NODE_ENV') !== 'production') {
- logger.add(winston.transports.File, {filename: 'habitrpg.log'});
- }
-}
-
-// A custom log function that wraps Winston. Makes it easy to instrument code
-// and still possible to replace Winston in the future.
-module.exports.log = function(/* variable args */) {
- if (logger)
- logger.log.apply(logger, arguments);
-};
-
-module.exports.info = function(/* variable args */) {
- if (logger)
- logger.info.apply(logger, arguments);
-};
-
-module.exports.warn = function(/* variable args */) {
- if (logger)
- logger.warn.apply(logger, arguments);
-};
-
-module.exports.error = function(/* variable args */) {
- if (logger)
- logger.error.apply(logger, arguments);
-};
\ No newline at end of file
diff --git a/website/server/libs/api-v2/utils.js b/website/server/libs/api-v2/utils.js
deleted file mode 100644
index 8657bf6513..0000000000
--- a/website/server/libs/api-v2/utils.js
+++ /dev/null
@@ -1,204 +0,0 @@
-var nodemailer = require('nodemailer');
-var nconf = require('nconf');
-var crypto = require('crypto');
-var path = require("path");
-var request = require('request');
-
-const IS_PROD = nconf.get('IS_PROD');
-const BASE_URL = nconf.get('BASE_URL');
-
-module.exports.sendEmail = function(mailData) {
- var smtpTransport = nodemailer.createTransport({
- service: nconf.get('SMTP_SERVICE'),
- auth: {
- user: nconf.get('SMTP_USER'),
- pass: nconf.get('SMTP_PASS')
- }
- });
-
- smtpTransport.sendMail(mailData, function(error, response){
- var logging = require('./api-v2/logging');
- if(error) logging.error(error);
- else logging.info("Message sent: " + response.message);
- smtpTransport.close(); // shut down the connection pool, no more messages
- });
-}
-
-function getUserInfo(user, fields) {
- var info = {};
-
- if(fields.indexOf('name') != -1){
- if(user.auth.local){
- info.name = user.profile.name || user.auth.local.username;
- }else if(user.auth.facebook){
- info.name = user.profile.name || user.auth.facebook.displayName || user.auth.facebook.username;
- }
- }
-
- if(fields.indexOf('email') != -1){
- if(user.auth.local && user.auth.local.email){
- info.email = user.auth.local.email;
- }else if(user.auth.facebook && user.auth.facebook.emails && user.auth.facebook.emails[0] && user.auth.facebook.emails[0].value){
- info.email = user.auth.facebook.emails[0].value;
- }
- }
-
- if(fields.indexOf('_id') != -1){
- info._id = user._id;
- }
-
- if(fields.indexOf('canSend') != -1){
- info.canSend = user.preferences.emailNotifications.unsubscribeFromAll !== true;
- }
-
- return info;
-}
-
-module.exports.getUserInfo = getUserInfo;
-
-module.exports.txnEmail = function(mailingInfoArray, emailType, variables, personalVariables){
- var mailingInfoArray = Array.isArray(mailingInfoArray) ? mailingInfoArray : [mailingInfoArray];
-
- var variables = [
- {name: 'BASE_URL', content: BASE_URL}
- ].concat(variables || []);
-
- // It's important to pass at least a user with its `preferences` as we need to check if he unsubscribed
- mailingInfoArray = mailingInfoArray.map(function(mailingInfo){
- return mailingInfo._id ? getUserInfo(mailingInfo, ['_id', 'email', 'name', 'canSend']) : mailingInfo;
- }).filter(function(mailingInfo){
- // Always send reset-password emails
- // Don't check canSend for non registered users as already checked before
- return (mailingInfo.email && ((!mailingInfo._id || mailingInfo.canSend) || emailType === 'reset-password'));
- });
-
- // Personal variables are personal to each email recipient, if they are missing
- // we manually create a structure for them with RECIPIENT_NAME and RECIPIENT_UNSUB_URL
- // otherwise we just add RECIPIENT_NAME and RECIPIENT_UNSUB_URL to the existing personal variables
- if(!personalVariables || personalVariables.length === 0){
- personalVariables = mailingInfoArray.map(function(mailingInfo){
- return {
- rcpt: mailingInfo.email,
- vars: [
- {
- name: 'RECIPIENT_NAME',
- content: mailingInfo.name
- },
- {
- name: 'RECIPIENT_UNSUB_URL',
- content: '/unsubscribe?code=' + module.exports.encrypt(JSON.stringify({
- _id: mailingInfo._id,
- email: mailingInfo.email
- }))
- }
- ]
- }
- });
- }else{
- var temporaryPersonalVariables = {};
-
- mailingInfoArray.forEach(function(mailingInfo){
- temporaryPersonalVariables[mailingInfo.email] = {
- name: mailingInfo.name,
- _id: mailingInfo._id
- }
- });
-
- personalVariables.forEach(function(singlePersonalVariables){
- singlePersonalVariables.vars.push(
- {
- name: 'RECIPIENT_NAME',
- content: temporaryPersonalVariables[singlePersonalVariables.rcpt].name
- },
- {
- name: 'RECIPIENT_UNSUB_URL',
- content: '/unsubscribe?code=' + module.exports.encrypt(JSON.stringify({
- _id: temporaryPersonalVariables[singlePersonalVariables.rcpt]._id,
- email: singlePersonalVariables.rcpt
- }))
- }
- )
- });
- }
-
- if(IS_PROD && mailingInfoArray.length > 0){
- request({
- url: nconf.get('EMAIL_SERVER:url') + '/job',
- method: 'POST',
- auth: {
- user: nconf.get('EMAIL_SERVER:authUser'),
- pass: nconf.get('EMAIL_SERVER:authPassword')
- },
- json: {
- type: 'email',
- data: {
- emailType: emailType,
- to: mailingInfoArray,
- variables: variables,
- personalVariables: personalVariables
- },
- options: {
- priority: 'high',
- attempts: 5,
- backoff: {delay: 10*60*1000, type: 'fixed'}
- }
- }
- });
- }
-}
-
-// Encryption using http://dailyjs.com/2010/12/06/node-tutorial-5/
-// Note: would use [password-hash](https://github.com/davidwood/node-password-hash), but we need to run
-// model.query().equals(), so it's a PITA to work in their verify() function
-
-module.exports.encryptPassword = function(password, salt) {
- return crypto.createHmac('sha1', salt).update(password).digest('hex');
-}
-
-module.exports.makeSalt = function() {
- var len = 10;
- return crypto.randomBytes(Math.ceil(len / 2)).toString('hex').substring(0, len);
-}
-
-// Prepare to export analytics object
-// Export emoty methods until the right ones are ready
-module.exports.analytics = { track: function() { }, trackPurchase: function() { } };
-
-/**
- * Load nconf and define default configuration values if config.json or ENV vars are not found
- */
-module.exports.setupConfig = function(){
- if (nconf.get('IS_DEV'))
- Error.stackTraceLimit = Infinity;
- if (IS_PROD && nconf.get('NEW_RELIC_ENABLED') === 'true')
- require('newrelic');
-
- var analytics = IS_PROD && require('./api-v2/analytics');
- var analyticsTokens = {
- amplitudeToken: nconf.get('AMPLITUDE_KEY'),
- googleAnalytics: nconf.get('GA_ID')
- }
-
- if(analytics){
- analytics = analytics(analyticsTokens);
- // Use the right analytics methods, don't substitute the entire object
- // or all the require() across the code will keep the empty methods
- module.exports.analytics.track = analytics.track;
- module.exports.analytics.trackPurchase = analytics.trackPurchase;
- }
-};
-
-var algorithm = 'aes-256-ctr';
-module.exports.encrypt = function(text){
- var cipher = crypto.createCipher(algorithm,nconf.get('SESSION_SECRET'))
- var crypted = cipher.update(text,'utf8','hex')
- crypted += cipher.final('hex');
- return crypted;
-}
-
-module.exports.decrypt = function(text){
- var decipher = crypto.createDecipher(algorithm,nconf.get('SESSION_SECRET'))
- var dec = decipher.update(text,'hex','utf8')
- dec += decipher.final('utf8');
- return dec;
-}
diff --git a/website/server/libs/api-v2/webhook.js b/website/server/libs/api-v2/webhook.js
deleted file mode 100644
index 847c9e08b3..0000000000
--- a/website/server/libs/api-v2/webhook.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var _ = require('lodash');
-var request = require('request');
-var validator = require('validator');
-
-function sendTaskWebhook(webhooks, data) {
- _.each(webhooks, function(hook){
- if (!hook.enabled || !validator.isURL(hook.url)) return;
-
- request.post({
- url: hook.url,
- body: {
- direction: data.task.direction,
- task: data.task.details,
- delta: data.task.delta,
- user: data.user
- },
- json: true
- });
- });
-}
-
-module.exports = {
- sendTaskWebhook: sendTaskWebhook
-};
diff --git a/website/server/libs/api-v3/aws.js b/website/server/libs/aws.js
similarity index 100%
rename from website/server/libs/api-v3/aws.js
rename to website/server/libs/aws.js
diff --git a/website/server/libs/api-v3/baseModel.js b/website/server/libs/baseModel.js
similarity index 100%
rename from website/server/libs/api-v3/baseModel.js
rename to website/server/libs/baseModel.js
diff --git a/website/server/libs/api-v3/buildManifest.js b/website/server/libs/buildManifest.js
similarity index 92%
rename from website/server/libs/api-v3/buildManifest.js
rename to website/server/libs/buildManifest.js
index 2945ef151b..809f5fd724 100644
--- a/website/server/libs/api-v3/buildManifest.js
+++ b/website/server/libs/buildManifest.js
@@ -2,8 +2,8 @@ import fs from 'fs';
import path from 'path';
import nconf from 'nconf';
-const MANIFEST_FILE_PATH = path.join(__dirname, '/../../../client/manifest.json');
-const BUILD_FOLDER_PATH = path.join(__dirname, '/../../../build');
+const MANIFEST_FILE_PATH = path.join(__dirname, '/../../client/manifest.json');
+const BUILD_FOLDER_PATH = path.join(__dirname, '/../../build');
let manifestFiles = require(MANIFEST_FILE_PATH);
const IS_PROD = nconf.get('IS_PROD');
diff --git a/website/server/libs/api-v3/collectionManipulators.js b/website/server/libs/collectionManipulators.js
similarity index 100%
rename from website/server/libs/api-v3/collectionManipulators.js
rename to website/server/libs/collectionManipulators.js
diff --git a/website/server/libs/api-v3/cron.js b/website/server/libs/cron.js
similarity index 98%
rename from website/server/libs/api-v3/cron.js
rename to website/server/libs/cron.js
index de65168fea..814ffe9a07 100644
--- a/website/server/libs/api-v3/cron.js
+++ b/website/server/libs/cron.js
@@ -1,8 +1,8 @@
import moment from 'moment';
import Bluebird from 'bluebird';
-import { model as User } from '../../models/user';
-import common from '../../../../common/';
-import { preenUserHistory } from '../../libs/api-v3/preening';
+import { model as User } from '../models/user';
+import common from '../../../common/';
+import { preenUserHistory } from '../libs/preening';
import _ from 'lodash';
import nconf from 'nconf';
diff --git a/website/server/libs/api-v3/csvStringify.js b/website/server/libs/csvStringify.js
similarity index 100%
rename from website/server/libs/api-v3/csvStringify.js
rename to website/server/libs/csvStringify.js
diff --git a/website/server/libs/api-v3/email.js b/website/server/libs/email.js
similarity index 99%
rename from website/server/libs/api-v3/email.js
rename to website/server/libs/email.js
index 26bd08f105..1e1fc79383 100644
--- a/website/server/libs/api-v3/email.js
+++ b/website/server/libs/email.js
@@ -1,6 +1,6 @@
import { createTransport } from 'nodemailer';
import nconf from 'nconf';
-import { TAVERN_ID } from '../../models/group';
+import { TAVERN_ID } from '../models/group';
import { encrypt } from './encryption';
import request from 'request';
import logger from './logger';
diff --git a/website/server/libs/api-v3/encryption.js b/website/server/libs/encryption.js
similarity index 100%
rename from website/server/libs/api-v3/encryption.js
rename to website/server/libs/encryption.js
diff --git a/website/server/libs/api-v3/errors.js b/website/server/libs/errors.js
similarity index 97%
rename from website/server/libs/api-v3/errors.js
rename to website/server/libs/errors.js
index 2b6d52bbe3..73a3c23c54 100644
--- a/website/server/libs/api-v3/errors.js
+++ b/website/server/libs/errors.js
@@ -1,4 +1,4 @@
-import common from '../../../../common';
+import common from '../../../common';
export const CustomError = common.errors.CustomError;
diff --git a/website/server/libs/api-v3/i18n.js b/website/server/libs/i18n.js
similarity index 96%
rename from website/server/libs/api-v3/i18n.js
rename to website/server/libs/i18n.js
index 4c424ace39..0e71793bc4 100644
--- a/website/server/libs/api-v3/i18n.js
+++ b/website/server/libs/i18n.js
@@ -1,9 +1,9 @@
import fs from 'fs';
import path from 'path';
import _ from 'lodash';
-import shared from '../../../../common';
+import shared from '../../../common';
-export const localePath = path.join(__dirname, '/../../../../common/locales/');
+export const localePath = path.join(__dirname, '/../../../common/locales/');
// Store translations
export let translations = {};
diff --git a/website/server/libs/api-v3/inAppPurchases.js b/website/server/libs/inAppPurchases.js
similarity index 100%
rename from website/server/libs/api-v3/inAppPurchases.js
rename to website/server/libs/inAppPurchases.js
diff --git a/website/server/libs/api-v3/logger.js b/website/server/libs/logger.js
similarity index 100%
rename from website/server/libs/api-v3/logger.js
rename to website/server/libs/logger.js
diff --git a/website/server/libs/api-v3/password.js b/website/server/libs/password.js
similarity index 100%
rename from website/server/libs/api-v3/password.js
rename to website/server/libs/password.js
diff --git a/website/server/libs/api-v3/payments.js b/website/server/libs/payments.js
similarity index 99%
rename from website/server/libs/api-v3/payments.js
rename to website/server/libs/payments.js
index 66902645d9..4ae9fcb72d 100644
--- a/website/server/libs/api-v3/payments.js
+++ b/website/server/libs/payments.js
@@ -6,7 +6,7 @@ import {
} from './email';
import moment from 'moment';
import sendPushNotification from './pushNotifications';
-import shared from '../../../../common' ;
+import shared from '../../../common' ;
let api = {};
diff --git a/website/server/libs/api-v3/preening.js b/website/server/libs/preening.js
similarity index 100%
rename from website/server/libs/api-v3/preening.js
rename to website/server/libs/preening.js
diff --git a/website/server/libs/api-v3/pushNotifications.js b/website/server/libs/pushNotifications.js
similarity index 79%
rename from website/server/libs/api-v3/pushNotifications.js
rename to website/server/libs/pushNotifications.js
index 7fe821f53d..c093d1a432 100644
--- a/website/server/libs/api-v3/pushNotifications.js
+++ b/website/server/libs/pushNotifications.js
@@ -1,5 +1,6 @@
import _ from 'lodash';
import nconf from 'nconf';
+// TODO remove this lib and use directly the apn module
import pushNotify from 'push-notify';
import apnLib from 'apn';
import logger from './logger';
@@ -7,19 +8,11 @@ import Bluebird from 'bluebird';
import {
S3,
} from './aws';
+import gcmLib from 'node-gcm'; // works with FCM notifications too
-const GCM_API_KEY = nconf.get('PUSH_CONFIGS:GCM_SERVER_API_KEY');
+const FCM_API_KEY = nconf.get('PUSH_CONFIGS:FCM_SERVER_API_KEY');
-let gcm = GCM_API_KEY ? pushNotify.gcm({
- apiKey: GCM_API_KEY,
- retries: 3,
-}) : undefined;
-
-if (gcm) {
- gcm.on('transmissionError', (err, message, registrationId) => {
- logger.error('GCM Error', err, message, registrationId);
- });
-}
+const fcmSender = FCM_API_KEY ? new gcmLib.Sender(FCM_API_KEY) : undefined;
let apn;
@@ -82,15 +75,18 @@ module.exports = function sendNotification (user, details = {}) {
_.each(pushDevices, pushDevice => {
switch (pushDevice.type) {
case 'android':
- if (gcm) {
- payload.title = details.title;
- payload.message = details.message;
- gcm.send({
- registrationId: pushDevice.regId,
- delayWhileIdle: true,
- timeToLive: details.timeToLive ? details.timeToLive : 15,
+ // Required for fcm to be received in background
+ payload.title = details.title;
+ payload.body = details.message;
+
+ if (fcmSender) {
+ let message = new gcmLib.Message({
data: payload,
});
+
+ fcmSender.send(message, {
+ registrationTokens: [pushDevice.regId],
+ }, 10, (err) => logger.error('FCM Error', err));
}
break;
diff --git a/website/server/libs/api-v3/pusher.js b/website/server/libs/pusher.js
similarity index 100%
rename from website/server/libs/api-v3/pusher.js
rename to website/server/libs/pusher.js
diff --git a/website/server/libs/api-v3/routes.js b/website/server/libs/routes.js
similarity index 95%
rename from website/server/libs/api-v3/routes.js
rename to website/server/libs/routes.js
index c0399fb73c..46b6478823 100644
--- a/website/server/libs/api-v3/routes.js
+++ b/website/server/libs/routes.js
@@ -2,8 +2,8 @@ import fs from 'fs';
import _ from 'lodash';
import {
getUserLanguage,
-} from '../../middlewares/api-v3/language';
-import cron from '../../middlewares/api-v3/cron';
+} from '../middlewares/language';
+import cron from '../middlewares/cron';
// Wrapper function to handler `async` route handlers that return promises
// It takes the async function, execute it and pass any error to next (args[2])
diff --git a/website/server/libs/api-v3/setupMongoose.js b/website/server/libs/setupMongoose.js
similarity index 100%
rename from website/server/libs/api-v3/setupMongoose.js
rename to website/server/libs/setupMongoose.js
diff --git a/website/server/libs/api-v3/setupNconf.js b/website/server/libs/setupNconf.js
similarity index 84%
rename from website/server/libs/api-v3/setupNconf.js
rename to website/server/libs/setupNconf.js
index d88b04014e..51c643cd20 100644
--- a/website/server/libs/api-v3/setupNconf.js
+++ b/website/server/libs/setupNconf.js
@@ -1,7 +1,7 @@
import nconf from 'nconf';
import { join, resolve } from 'path';
-const PATH_TO_CONFIG = join(resolve(__dirname, '../../../../config.json'));
+const PATH_TO_CONFIG = join(resolve(__dirname, '../../../config.json'));
module.exports = function setupNconf (file) {
let configFile = file || PATH_TO_CONFIG;
diff --git a/website/server/libs/api-v3/setupPassport.js b/website/server/libs/setupPassport.js
similarity index 100%
rename from website/server/libs/api-v3/setupPassport.js
rename to website/server/libs/setupPassport.js
diff --git a/website/server/libs/api-v3/webhook.js b/website/server/libs/webhook.js
similarity index 100%
rename from website/server/libs/api-v3/webhook.js
rename to website/server/libs/webhook.js
diff --git a/website/server/middlewares/api-v3/analytics.js b/website/server/middlewares/analytics.js
similarity index 87%
rename from website/server/middlewares/api-v3/analytics.js
rename to website/server/middlewares/analytics.js
index 8512d16011..f86becb773 100644
--- a/website/server/middlewares/api-v3/analytics.js
+++ b/website/server/middlewares/analytics.js
@@ -3,7 +3,7 @@ import {
track,
trackPurchase,
mockAnalyticsService,
-} from '../../libs/api-v3/analyticsService';
+} from '../libs/analyticsService';
let service;
diff --git a/website/server/middlewares/api-v2/domain.js b/website/server/middlewares/api-v2/domain.js
deleted file mode 100644
index db3e65df2e..0000000000
--- a/website/server/middlewares/api-v2/domain.js
+++ /dev/null
@@ -1,49 +0,0 @@
-var nconf = require('nconf');
-var moment = require('moment');
-var domainMiddleware = require('domain-middleware');
-var os = require('os');
-var request = require('request');
-
-var IS_PROD = nconf.get('NODE_ENV') === 'production';
-
-module.exports = function(server,mongoose) {
- /* if (IS_PROD) {
- var mins = 3, // how often to run this check
- 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';
- setInterval(function(){
- // 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({
- 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')}
- }, function(err, response, body){
- var ts = JSON.parse(body).metric_data.metrics[0].timeslices,
- score = ts[ts.length-1].values.score,
- memory = os.freemem() / os.totalmem(),
- memoryHigh = memory < 0.1;
-
- if (memoryHigh) {
- var newRelicMemoryLeakMessage = '[Memory Leak] Apdex='+score+' Memory='+parseFloat(memory).toFixed(3)+' Time='+moment().format();
- throw newRelicMemoryLeakMessage;
- }
- });
-
- var memory = os.freemem() / os.totalmem(),
- memoryHigh = memory < 0.1;
- if (memoryHigh) {
- var memoryLeakMessage = '[Memory Leak] Memory='+parseFloat(memory).toFixed(3)+' Time='+moment().format();
- throw memoryLeakMessage;
- }
- }, mins*60*1000);
- } */
-
- return domainMiddleware({
- server: {
- close:function(){
- server.close();
- mongoose.connection.close();
- }
- },
- killTimeout: 10000
- });
-};
diff --git a/website/server/middlewares/api-v2/errorHandler.js b/website/server/middlewares/api-v2/errorHandler.js
deleted file mode 100644
index fcea9d175c..0000000000
--- a/website/server/middlewares/api-v2/errorHandler.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var logging = require('../../libs/api-v2/logging');
-
-module.exports = function(err, req, res, next) {
- //res.locals.domain.emit('error', err);
- // when we hit an error, send it to admin as an email. If no ADMIN_EMAIL is present, just send it to yourself (SMTP_USER)
- var stack = (err.stack ? err.stack : err.message ? err.message : err) +
- "\n ----------------------------\n" +
- "\n\noriginalUrl: " + req.originalUrl +
- "\n\nauth: " + req.headers['x-api-user'] + ' | ' + req.headers['x-api-key'] +
- "\n\nheaders: " + JSON.stringify(req.headers) +
- "\n\nbody: " + JSON.stringify(req.body) +
- (res.locals.ops ? "\n\ncompleted ops: " + JSON.stringify(res.locals.ops) : "");
- logging.error(stack);
- var message = err.message ? err.message : err;
- message = (message.length < 200) ? message : message.substring(0,100) + message.substring(message.length-100,message.length);
- res.status(500).json({err:message}); //res.end(err.message);
-};
diff --git a/website/server/middlewares/api-v2/locals.js b/website/server/middlewares/api-v2/locals.js
deleted file mode 100644
index 223186a81a..0000000000
--- a/website/server/middlewares/api-v2/locals.js
+++ /dev/null
@@ -1,70 +0,0 @@
-var nconf = require('nconf');
-var _ = require('lodash');
-var utils = require('../libs/api-v2/utils');
-var shared = require('../../../common');
-var i18n = require('../libs/api-v2/i18n');
-var buildManifest = require('../libs/api-v2/buildManifest');
-var shared = require('../../../common');
-var forceRefresh = require('./forceRefresh');
-var tavernQuest = require('../models/group').tavernQuest;
-var mods = require('../models/user').mods;
-
-// To avoid stringifying more data then we need,
-// items from `env` used on the client will have to be specified in this array
-var clientVars = ['language', 'isStaticPage', 'avalaibleLanguages', 'translations',
- 'FACEBOOK_KEY', 'NODE_ENV', 'BASE_URL', 'GA_ID',
- 'AMAZON_PAYMENTS', 'STRIPE_PUB_KEY', 'AMPLITUDE_KEY',
- 'worldDmg', 'mods', 'IS_MOBILE'];
-
-var env = {
- getManifestFiles: buildManifest.getManifestFiles,
- getBuildUrl: buildManifest.getBuildUrl,
- _: _,
- clientVars: clientVars,
- mods: mods,
- Content: shared.content,
- siteVersion: forceRefresh.siteVersion,
- avalaibleLanguages: i18n.avalaibleLanguages,
- AMAZON_PAYMENTS: {
- SELLER_ID: nconf.get('AMAZON_PAYMENTS:SELLER_ID'),
- CLIENT_ID: nconf.get('AMAZON_PAYMENTS:CLIENT_ID')
- }
-};
-
-'NODE_ENV BASE_URL GA_ID STRIPE_PUB_KEY FACEBOOK_KEY AMPLITUDE_KEY'.split(' ').forEach(function(key){
- env[key] = nconf.get(key);
-});
-
-module.exports = function(req, res, next) {
- var language = _.find(i18n.avalaibleLanguages, {code: req.language});
- var isStaticPage = req.url.split('/')[1] === 'static'; // If url contains '/static/'
-
- // Load moment.js language file only when not on static pages
- language.momentLang = ((!isStaticPage && i18n.momentLangs[language.code]) || undefined);
-
- res.locals.habitrpg = _.assign(env, {
- IS_MOBILE: /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(req.header('User-Agent')),
- language: language,
- isStaticPage: isStaticPage,
- translations: i18n.translations[language.code],
- t: function(){ // stringName and vars are the allowed parameters
- var args = Array.prototype.slice.call(arguments, 0);
- args.push(language.code);
- return shared.i18n.t.apply(null, args);
- },
- // Defined here and not outside of the middleware because tavernQuest might be an
- // empty object until the query to fetch it finishes
- worldDmg: (tavernQuest && tavernQuest.extra && tavernQuest.extra.worldDmg) || {},
- });
-
- // Put query-string party (& guild but use partyInvite for backward compatibility)
- // invitations into session to be handled later
- // TODO once we have proper logging in place, log errors here
- if(req.query.partyInvite){
- try{
- req.session.partyInvite = JSON.parse(utils.decrypt(req.query.partyInvite));
- } catch(e){}
- }
-
- next();
-};
diff --git a/website/server/middlewares/api-v3/v2.js b/website/server/middlewares/api-v3/v2.js
deleted file mode 100644
index ec49e326a4..0000000000
--- a/website/server/middlewares/api-v3/v2.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// DEPRECATED BUT STILL ACTIVE
-
-// import path from 'path';
-import swagger from 'swagger-node-express';
-// import shared from '../../../../common';
-import express from 'express';
-import analytics from './analytics';
-import responseHandler from './response';
-
-const v2app = express();
-
-// re-set the view options because they are not inherited from the top level app
-v2app.set('view engine', 'jade');
-v2app.set('views', `${__dirname}/../../../views`);
-
-v2app.use(analytics);
-v2app.use(responseHandler);
-
-
-// Custom Directives
-v2app.use('/', require('../../routes/api-v2/auth'));
-
-require('../../routes/api-v2/swagger')(swagger, v2app);
-
-v2app.use(require('../api-v2/errorHandler'));
-
-module.exports = v2app;
diff --git a/website/server/middlewares/apiThrottle.js b/website/server/middlewares/apiThrottle.js
deleted file mode 100644
index b392cc777e..0000000000
--- a/website/server/middlewares/apiThrottle.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var nconf = require('nconf');
-var limiter = require('connect-ratelimit');
-
-var IS_PROD = nconf.get('NODE_ENV') === 'production';
-
-// TODO since Habitica runs on many different servers this module is pretty useless
-// as it will only block requests that go to the same server but anyway we should probably have a rate limiter in place
-
-module.exports = function(app) {
- // disable the rate limiter middleware
- if (/*!IS_PROD || */true) return;
- app.use(limiter({
- end:false,
- categories:{
- normal: {
- // 2 req/s, but split as minutes
- totalRequests: 80,
- every: 60000
- }
- }
- })).use(function(req,res,next){
- //logging.info(res.ratelimit);
- if (res.ratelimit.exceeded) return res.status(429).json({err:'Rate limit exceeded'});
- next();
- });
-};
diff --git a/website/server/middlewares/api-v3/auth.js b/website/server/middlewares/auth.js
similarity index 97%
rename from website/server/middlewares/api-v3/auth.js
rename to website/server/middlewares/auth.js
index 0feb73a98d..136159132a 100644
--- a/website/server/middlewares/api-v3/auth.js
+++ b/website/server/middlewares/auth.js
@@ -1,9 +1,9 @@
import {
NotAuthorized,
-} from '../../libs/api-v3/errors';
+} from '../libs/errors';
import {
model as User,
-} from '../../models/user';
+} from '../models/user';
// Strins won't be translated here because getUserLanguage has not run yet
diff --git a/website/server/middlewares/api-v3/cors.js b/website/server/middlewares/cors.js
similarity index 100%
rename from website/server/middlewares/api-v3/cors.js
rename to website/server/middlewares/cors.js
diff --git a/website/server/middlewares/api-v3/cron.js b/website/server/middlewares/cron.js
similarity index 97%
rename from website/server/middlewares/api-v3/cron.js
rename to website/server/middlewares/cron.js
index e4745f734e..9ab349a4b5 100644
--- a/website/server/middlewares/api-v3/cron.js
+++ b/website/server/middlewares/cron.js
@@ -1,11 +1,11 @@
import _ from 'lodash';
import moment from 'moment';
-import common from '../../../../common';
-import * as Tasks from '../../models/task';
+import common from '../../../common';
+import * as Tasks from '../models/task';
import Bluebird from 'bluebird';
-import { model as Group } from '../../models/group';
-import { model as User } from '../../models/user';
-import { recoverCron, cron } from '../../libs/api-v3/cron';
+import { model as Group } from '../models/group';
+import { model as User } from '../models/user';
+import { recoverCron, cron } from '../libs/cron';
import { v4 as uuid } from 'uuid';
const daysSince = common.daysSince;
diff --git a/website/server/middlewares/api-v3/domain.js b/website/server/middlewares/domain.js
similarity index 100%
rename from website/server/middlewares/api-v3/domain.js
rename to website/server/middlewares/domain.js
diff --git a/website/server/middlewares/api-v3/ensureAccessRight.js b/website/server/middlewares/ensureAccessRight.js
similarity index 91%
rename from website/server/middlewares/api-v3/ensureAccessRight.js
rename to website/server/middlewares/ensureAccessRight.js
index 2fb64ed8af..c05aedb3ff 100644
--- a/website/server/middlewares/api-v3/ensureAccessRight.js
+++ b/website/server/middlewares/ensureAccessRight.js
@@ -1,6 +1,6 @@
import {
NotAuthorized,
-} from '../../libs/api-v3/errors';
+} from '../libs/errors';
export function ensureAdmin (req, res, next) {
let user = res.locals.user;
diff --git a/website/server/middlewares/api-v3/ensureDevelpmentMode.js b/website/server/middlewares/ensureDevelpmentMode.js
similarity index 85%
rename from website/server/middlewares/api-v3/ensureDevelpmentMode.js
rename to website/server/middlewares/ensureDevelpmentMode.js
index 98f70d33f5..c15dde0ea0 100644
--- a/website/server/middlewares/api-v3/ensureDevelpmentMode.js
+++ b/website/server/middlewares/ensureDevelpmentMode.js
@@ -1,7 +1,7 @@
import nconf from 'nconf';
import {
NotFound,
-} from '../../libs/api-v3/errors';
+} from '../libs/errors';
module.exports = function ensureDevelpmentMode (req, res, next) {
if (nconf.get('IS_PROD')) {
diff --git a/website/server/middlewares/api-v3/errorHandler.js b/website/server/middlewares/errorHandler.js
similarity index 97%
rename from website/server/middlewares/api-v3/errorHandler.js
rename to website/server/middlewares/errorHandler.js
index b71fb9666e..a42251fd7d 100644
--- a/website/server/middlewares/api-v3/errorHandler.js
+++ b/website/server/middlewares/errorHandler.js
@@ -1,11 +1,11 @@
// The error handler middleware that handles all errors
// and respond to the client
-import logger from '../../libs/api-v3/logger';
+import logger from '../libs/logger';
import {
CustomError,
BadRequest,
InternalServerError,
-} from '../../libs/api-v3/errors';
+} from '../libs/errors';
import {
map,
omit,
diff --git a/website/server/middlewares/forceRefresh.js b/website/server/middlewares/forceRefresh.js
deleted file mode 100644
index f843694790..0000000000
--- a/website/server/middlewares/forceRefresh.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// TODO do we need this module anymore in v3? No
-
-module.exports.siteVersion = 1;
-
-module.exports.middleware = function(req, res, next){
- if(req.query.siteVersion && req.query.siteVersion != module.exports.siteVersion){
- return res.status(400).json({needRefresh: true});
- }
-
- return next();
-};
diff --git a/website/server/middlewares/api-v3/index.js b/website/server/middlewares/index.js
similarity index 95%
rename from website/server/middlewares/api-v3/index.js
rename to website/server/middlewares/index.js
index 694fdb6ea5..2283350677 100644
--- a/website/server/middlewares/api-v3/index.js
+++ b/website/server/middlewares/index.js
@@ -29,14 +29,14 @@ import {
const IS_PROD = nconf.get('IS_PROD');
const DISABLE_LOGGING = nconf.get('DISABLE_REQUEST_LOGGING');
-const PUBLIC_DIR = path.join(__dirname, '/../../../client');
+const PUBLIC_DIR = path.join(__dirname, '/../../client');
const SESSION_SECRET = nconf.get('SESSION_SECRET');
const TWO_WEEKS = 1000 * 60 * 60 * 24 * 14;
module.exports = function attachMiddlewares (app, server) {
app.set('view engine', 'jade');
- app.set('views', `${__dirname}/../views`);
+ app.set('views', `${__dirname}/../../views`);
app.use(domainMiddleware(server, mongoose));
diff --git a/website/server/middlewares/api-v3/language.js b/website/server/middlewares/language.js
similarity index 95%
rename from website/server/middlewares/api-v3/language.js
rename to website/server/middlewares/language.js
index b83c9d5208..9223c53bad 100644
--- a/website/server/middlewares/api-v3/language.js
+++ b/website/server/middlewares/language.js
@@ -1,12 +1,12 @@
-import { model as User } from '../../models/user';
+import { model as User } from '../models/user';
import accepts from 'accepts';
-import common from '../../../../common';
+import common from '../../../common';
import _ from 'lodash';
import {
translations,
defaultLangCodes,
multipleVersionsLanguages,
-} from '../../libs/api-v3/i18n';
+} from '../libs/i18n';
const i18n = common.i18n;
diff --git a/website/server/middlewares/api-v3/locals.js b/website/server/middlewares/locals.js
similarity index 86%
rename from website/server/middlewares/api-v3/locals.js
rename to website/server/middlewares/locals.js
index 306e4b26c7..17a945f1fd 100644
--- a/website/server/middlewares/api-v3/locals.js
+++ b/website/server/middlewares/locals.js
@@ -1,14 +1,13 @@
import nconf from 'nconf';
import _ from 'lodash';
-import shared from '../../../../common';
-import * as i18n from '../../libs/api-v3/i18n';
+import shared from '../../../common';
+import * as i18n from '../libs/i18n';
import {
getBuildUrl,
getManifestFiles,
-} from '../../libs/api-v3/buildManifest';
-import forceRefresh from './../forceRefresh';
-import { tavernQuest } from '../../models/group';
-import { mods } from '../../models/user';
+} from '../libs/buildManifest';
+import { tavernQuest } from '../models/group';
+import { mods } from '../models/user';
// To avoid stringifying more data then we need,
// items from `env` used on the client will have to be specified in this array
@@ -24,7 +23,6 @@ let env = {
clientVars: CLIENT_VARS,
mods,
Content: shared.content,
- siteVersion: forceRefresh.siteVersion,
availableLanguages: i18n.availableLanguages,
AMAZON_PAYMENTS: {
SELLER_ID: nconf.get('AMAZON_PAYMENTS:SELLER_ID'),
diff --git a/website/server/middlewares/api-v3/maintenanceMode.js b/website/server/middlewares/maintenanceMode.js
similarity index 81%
rename from website/server/middlewares/api-v3/maintenanceMode.js
rename to website/server/middlewares/maintenanceMode.js
index 331663125a..d6f314a02e 100644
--- a/website/server/middlewares/api-v3/maintenanceMode.js
+++ b/website/server/middlewares/maintenanceMode.js
@@ -17,9 +17,9 @@ module.exports = function maintenanceMode (req, res, next) {
if (req.headers && req.headers.accept && req.headers.accept.indexOf('text/html') !== -1) {
if (req.path === '/views/static/maintenance-info') {
- return res.status(503).render('../../../views/static/maintenance-info', pageVariables);
+ return res.status(503).render('../../views/static/maintenance-info', pageVariables);
} else {
- return res.status(503).render('../../../views/static/maintenance', pageVariables);
+ return res.status(503).render('../../views/static/maintenance', pageVariables);
}
} else {
return res.status(503).send({
diff --git a/website/server/middlewares/api-v3/notFound.js b/website/server/middlewares/notFound.js
similarity index 76%
rename from website/server/middlewares/api-v3/notFound.js
rename to website/server/middlewares/notFound.js
index 6a71b5def4..8e2814148b 100644
--- a/website/server/middlewares/api-v3/notFound.js
+++ b/website/server/middlewares/notFound.js
@@ -1,6 +1,6 @@
import {
NotFound,
-} from '../../libs/api-v3/errors';
+} from '../libs/errors';
module.exports = function NotFoundMiddleware (req, res, next) {
next(new NotFound());
diff --git a/website/server/middlewares/api-v3/redirects.js b/website/server/middlewares/redirects.js
similarity index 100%
rename from website/server/middlewares/api-v3/redirects.js
rename to website/server/middlewares/redirects.js
diff --git a/website/server/middlewares/api-v3/response.js b/website/server/middlewares/response.js
similarity index 100%
rename from website/server/middlewares/api-v3/response.js
rename to website/server/middlewares/response.js
diff --git a/website/server/middlewares/api-v3/setupBody.js b/website/server/middlewares/setupBody.js
similarity index 100%
rename from website/server/middlewares/api-v3/setupBody.js
rename to website/server/middlewares/setupBody.js
diff --git a/website/server/middlewares/api-v3/static.js b/website/server/middlewares/static.js
similarity index 86%
rename from website/server/middlewares/api-v3/static.js
rename to website/server/middlewares/static.js
index 95736fcaec..405deaa655 100644
--- a/website/server/middlewares/api-v3/static.js
+++ b/website/server/middlewares/static.js
@@ -4,8 +4,8 @@ import path from 'path';
const IS_PROD = nconf.get('IS_PROD');
const MAX_AGE = IS_PROD ? 31536000000 : 0;
-const PUBLIC_DIR = path.join(__dirname, '/../../../client');
-const BUILD_DIR = path.join(__dirname, '/../../../build');
+const PUBLIC_DIR = path.join(__dirname, '/../../client');
+const BUILD_DIR = path.join(__dirname, '/../../build');
module.exports = function staticMiddleware (expressApp) {
// TODO move all static files to a single location (one for public and one for build)
diff --git a/website/server/middlewares/api-v3/v1.js b/website/server/middlewares/v1.js
similarity index 83%
rename from website/server/middlewares/api-v3/v1.js
rename to website/server/middlewares/v1.js
index abe26f42e6..c91c65b617 100644
--- a/website/server/middlewares/api-v3/v1.js
+++ b/website/server/middlewares/v1.js
@@ -5,14 +5,14 @@ import express from 'express';
import nconf from 'nconf';
import {
NotFound,
-} from '../../libs/api-v3/errors';
+} from '../libs/errors';
const router = express.Router(); // eslint-disable-line babel/new-cap
const BASE_URL = nconf.get('BASE_URL');
router.all('*', function deprecatedV1 (req, res, next) {
- let error = new NotFound(`API v1 is no longer supported, please use API v3 instead (${BASE_URL}/static/api).`);
+ let error = new NotFound(`API v1 is no longer supported, please use API v3 instead (${BASE_URL}/apidoc).`);
return next(error);
});
diff --git a/website/server/middlewares/v2.js b/website/server/middlewares/v2.js
new file mode 100644
index 0000000000..7b35de3b72
--- /dev/null
+++ b/website/server/middlewares/v2.js
@@ -0,0 +1,19 @@
+// API v2 middlewares and routes
+// DEPRECATED AND INACTIVE
+
+import express from 'express';
+import nconf from 'nconf';
+import {
+ NotFound,
+} from '../libs/errors';
+
+const router = express.Router(); // eslint-disable-line babel/new-cap
+
+const BASE_URL = nconf.get('BASE_URL');
+
+router.all('*', function deprecatedV2 (req, res, next) {
+ let error = new NotFound(`API v2 is no longer supported, please use API v3 instead (${BASE_URL}/apidoc).`);
+ return next(error);
+});
+
+module.exports = router;
diff --git a/website/server/middlewares/api-v3/v3.js b/website/server/middlewares/v3.js
similarity index 73%
rename from website/server/middlewares/api-v3/v3.js
rename to website/server/middlewares/v3.js
index f9aa637fa0..d7afccb28c 100644
--- a/website/server/middlewares/api-v3/v3.js
+++ b/website/server/middlewares/v3.js
@@ -2,17 +2,17 @@ import express from 'express';
import expressValidator from 'express-validator';
import analytics from './analytics';
import setupBody from './setupBody';
-import routes from '../../libs/api-v3/routes';
+import routes from '../libs/routes';
import path from 'path';
-const API_CONTROLLERS_PATH = path.join(__dirname, '/../../controllers/api-v3/');
-const TOP_LEVEL_CONTROLLERS_PATH = path.join(__dirname, '/../../controllers/top-level/');
+const API_CONTROLLERS_PATH = path.join(__dirname, '/../controllers/api-v3/');
+const TOP_LEVEL_CONTROLLERS_PATH = path.join(__dirname, '/../controllers/top-level/');
const v3app = express();
// re-set the view options because they are not inherited from the top level app
v3app.set('view engine', 'jade');
-v3app.set('views', `${__dirname}/../../../views`);
+v3app.set('views', `${__dirname}/../../views`);
v3app.use(expressValidator());
v3app.use(analytics);
diff --git a/website/server/models/challenge.js b/website/server/models/challenge.js
index 9f6fded6f7..902b23171a 100644
--- a/website/server/models/challenge.js
+++ b/website/server/models/challenge.js
@@ -1,7 +1,7 @@
import mongoose from 'mongoose';
import Bluebird from 'bluebird';
import validator from 'validator';
-import baseModel from '../libs/api-v3/baseModel';
+import baseModel from '../libs/baseModel';
import _ from 'lodash';
import * as Tasks from './task';
import { model as User } from './user';
@@ -9,10 +9,10 @@ import {
model as Group,
TAVERN_ID,
} from './group';
-import { removeFromArray } from '../libs/api-v3/collectionManipulators';
+import { removeFromArray } from '../libs/collectionManipulators';
import shared from '../../../common';
-import { sendTxn as txnEmail } from '../libs/api-v3/email';
-import sendPushNotification from '../libs/api-v3/pushNotifications';
+import { sendTxn as txnEmail } from '../libs/email';
+import sendPushNotification from '../libs/pushNotifications';
import cwait from 'cwait';
const Schema = mongoose.Schema;
@@ -332,105 +332,4 @@ schema.methods.closeChal = async function closeChal (broken = {}) {
Bluebird.all(backgroundTasks);
};
-// Methods to adapt the new schema to API v2 responses (mostly tasks inside the challenge model)
-// These will be removed once API v2 is discontinued
-
-// Get all the tasks belonging to a challenge,
-schema.methods.getTasks = function getChallengeTasks () {
- let args = Array.from(arguments);
- let cb;
- let type;
-
- if (args.length === 1) {
- cb = args[0];
- } else if (args.length > 1) {
- type = args[0];
- cb = args[1];
- } else {
- cb = function noop () {};
- }
-
- let query = {
- userId: {
- $exists: false,
- },
-
- 'challenge.id': this._id,
- };
-
- if (type) query.type = type;
-
- return Tasks.Task.find(query, cb); // so we can use it as a promise
-};
-
-// Given challenge and an array of tasks and one of members return an API compatible challenge + tasks obj + members
-schema.methods.addToChallenge = function addToChallenge (tasks, members) {
- let obj = this.toJSON();
- obj.members = members;
-
- let tasksOrder = obj.tasksOrder; // Saving a reference because we won't return it
-
- obj.habits = [];
- obj.dailys = [];
- obj.todos = [];
- obj.rewards = [];
-
- obj.tasksOrder = undefined;
- let unordered = [];
-
- tasks.forEach((task) => {
- // We want to push the task at the same position where it's stored in tasksOrder
- let pos = tasksOrder[`${task.type}s`].indexOf(task._id);
- if (pos === -1) { // Should never happen, it means the lists got out of sync
- unordered.push(task.toJSONV2());
- } else {
- obj[`${task.type}s`][pos] = task.toJSONV2();
- }
- });
-
- // Reconcile unordered items
- unordered.forEach((task) => {
- obj[`${task.type}s`].push(task);
- });
-
- // Remove null values that can be created when inserting tasks at an index > length
- ['habits', 'dailys', 'rewards', 'todos'].forEach((type) => {
- obj[type] = _.compact(obj[type]);
- });
-
- return obj;
-};
-
-// Return the data maintaining backward compatibility
-schema.methods.getTransformedData = function getTransformedData (options) {
- let self = this;
-
- let cb = options.cb;
- let populateMembers = options.populateMembers;
-
- let queryMembers = {
- challenges: self._id,
- };
-
- let selectDataMembers = '_id';
-
- if (populateMembers) {
- selectDataMembers += ` ${populateMembers}`;
- }
-
- let membersQuery = User.find(queryMembers).select(selectDataMembers);
- if (options.limitPopulation) membersQuery.limit(15);
-
- Bluebird.all([
- membersQuery.exec(),
- self.getTasks(),
- ])
- .then((results) => {
- cb(null, self.addToChallenge(results[1], results[0]));
- })
- .catch(cb);
-};
-
-// END of API v2 methods
-
export let model = mongoose.model('Challenge', schema);
diff --git a/website/server/models/coupon.js b/website/server/models/coupon.js
index af9953aba0..43787f5c03 100644
--- a/website/server/models/coupon.js
+++ b/website/server/models/coupon.js
@@ -4,11 +4,11 @@ import mongoose from 'mongoose';
import _ from 'lodash';
import shared from '../../../common';
import couponCode from 'coupon-code';
-import baseModel from '../libs/api-v3/baseModel';
+import baseModel from '../libs/baseModel';
import {
BadRequest,
NotAuthorized,
-} from '../libs/api-v3/errors';
+} from '../libs/errors';
export let schema = new mongoose.Schema({
_id: {type: String, default: couponCode.generate},
diff --git a/website/server/models/emailUnsubscription.js b/website/server/models/emailUnsubscription.js
index fe30e5d608..a0d1d0b7e6 100644
--- a/website/server/models/emailUnsubscription.js
+++ b/website/server/models/emailUnsubscription.js
@@ -1,6 +1,6 @@
import mongoose from 'mongoose';
import validator from 'validator';
-import baseModel from '../libs/api-v3/baseModel';
+import baseModel from '../libs/baseModel';
// A collection used to store mailing list unsubscription for non registered email addresses
export let schema = new mongoose.Schema({
diff --git a/website/server/models/group.js b/website/server/models/group.js
index 0474104fad..7abbe42135 100644
--- a/website/server/models/group.js
+++ b/website/server/models/group.js
@@ -7,17 +7,17 @@ import shared from '../../../common';
import _ from 'lodash';
import { model as Challenge} from './challenge';
import validator from 'validator';
-import { removeFromArray } from '../libs/api-v3/collectionManipulators';
+import { removeFromArray } from '../libs/collectionManipulators';
import {
InternalServerError,
BadRequest,
-} from '../libs/api-v3/errors';
-import baseModel from '../libs/api-v3/baseModel';
-import { sendTxn as sendTxnEmail } from '../libs/api-v3/email';
+} from '../libs/errors';
+import baseModel from '../libs/baseModel';
+import { sendTxn as sendTxnEmail } from '../libs/email';
import Bluebird from 'bluebird';
import nconf from 'nconf';
-import sendPushNotification from '../libs/api-v3/pushNotifications';
-import pusher from '../libs/api-v3/pusher';
+import sendPushNotification from '../libs/pushNotifications';
+import pusher from '../libs/pusher';
const questScrolls = shared.content.quests;
const Schema = mongoose.Schema;
@@ -95,7 +95,7 @@ schema.statics.sanitizeUpdate = function sanitizeUpdate (updateObj) {
};
// Basic fields to fetch for populating a group info
-export let basicFields = 'name type privacy';
+export let basicFields = 'name type privacy leader';
schema.pre('remove', true, async function preRemoveGroup (next, done) {
next();
@@ -701,6 +701,9 @@ schema.statics.tavernBoss = async function tavernBoss (user, progress) {
schema.methods.leave = async function leaveGroup (user, keep = 'keep-all') {
let group = this;
+ let update = {
+ $inc: {memberCount: -1},
+ };
let challenges = await Challenge.find({
_id: {$in: user.challenges},
@@ -724,16 +727,14 @@ schema.methods.leave = async function leaveGroup (user, keep = 'keep-all') {
pusher.trigger(`presence-group-${group._id}`, 'user-left', {
userId: user._id,
});
+
+ update.$unset = {[`quest.members.${user._id}`]: 1};
}
// If user is the last one in group and group is private, delete it
if (group.memberCount <= 1 && group.privacy === 'private') {
promises.push(group.remove());
} else { // otherwise If the leader is leaving (or if the leader previously left, and this wasn't accounted for)
- let update = {
- $inc: {memberCount: -1},
- };
-
if (group.leader === user._id) {
let query = group.type === 'party' ? {'party._id': group._id} : {guilds: group._id};
query._id = {$ne: user._id};
@@ -748,63 +749,6 @@ schema.methods.leave = async function leaveGroup (user, keep = 'keep-all') {
return await Bluebird.all(promises);
};
-// API v2 compatibility methods
-schema.methods.getTransformedData = function getTransformedData (options) {
- let cb = options.cb;
- let populateMembers = options.populateMembers;
- let populateInvites = options.populateInvites;
- let populateChallenges = options.populateChallenges;
-
- let obj = this.toJSON();
-
- let queryMembers = {};
- let queryInvites = {};
-
- if (this.type === 'guild') {
- queryInvites['invitations.guilds.id'] = this._id;
- } else {
- queryInvites['invitations.party.id'] = this._id;
- }
-
- if (this.type === 'guild') {
- queryMembers.guilds = this._id;
- } else {
- queryMembers['party._id'] = this._id;
- }
-
- let selectDataMembers = '_id';
- let selectDataInvites = '_id';
- let selectDataChallenges = '_id';
-
- if (populateMembers) {
- selectDataMembers += ` ${populateMembers}`;
- }
- if (populateInvites) {
- selectDataInvites += ` ${populateInvites}`;
- }
- if (populateChallenges) {
- selectDataChallenges += ` ${populateChallenges}`;
- }
-
- let membersQuery = User.find(queryMembers).select(selectDataMembers);
- if (options.limitPopulation) membersQuery.limit(15);
-
- Bluebird.all([
- membersQuery.exec(),
- User.find(queryInvites).select(populateInvites).exec(),
- Challenge.find({group: obj._id}).select(populateMembers).exec(),
- ])
- .then((results) => {
- obj.members = results[0];
- obj.invites = results[1];
- obj.challenges = results[2];
-
- cb(null, obj);
- })
- .catch(cb);
-};
-// END API v2 compatibility methods
-
export let model = mongoose.model('Group', schema);
// initialize tavern if !exists (fresh installs)
diff --git a/website/server/models/iapPurchaseReceipt.js b/website/server/models/iapPurchaseReceipt.js
index 6450ded11f..b29bd90425 100644
--- a/website/server/models/iapPurchaseReceipt.js
+++ b/website/server/models/iapPurchaseReceipt.js
@@ -1,5 +1,5 @@
import mongoose from 'mongoose';
-import baseModel from '../libs/api-v3/baseModel';
+import baseModel from '../libs/baseModel';
import validator from 'validator';
const Schema = mongoose.Schema;
diff --git a/website/server/models/pushDevice.js b/website/server/models/pushDevice.js
index bab33983e5..2467f6e963 100644
--- a/website/server/models/pushDevice.js
+++ b/website/server/models/pushDevice.js
@@ -1,5 +1,5 @@
import mongoose from 'mongoose';
-import baseModel from '../libs/api-v3/baseModel';
+import baseModel from '../libs/baseModel';
const Schema = mongoose.Schema;
diff --git a/website/server/models/tag.js b/website/server/models/tag.js
index 77938ab7d9..0f2ed2abaa 100644
--- a/website/server/models/tag.js
+++ b/website/server/models/tag.js
@@ -1,5 +1,5 @@
import mongoose from 'mongoose';
-import baseModel from '../libs/api-v3/baseModel';
+import baseModel from '../libs/baseModel';
import { v4 as uuid } from 'uuid';
import validator from 'validator';
diff --git a/website/server/models/task.js b/website/server/models/task.js
index e1ba2645d7..a35e4b6c42 100644
--- a/website/server/models/task.js
+++ b/website/server/models/task.js
@@ -2,10 +2,10 @@ import mongoose from 'mongoose';
import shared from '../../../common';
import validator from 'validator';
import moment from 'moment';
-import baseModel from '../libs/api-v3/baseModel';
-import { InternalServerError } from '../libs/api-v3/errors';
+import baseModel from '../libs/baseModel';
+import { InternalServerError } from '../libs/errors';
import _ from 'lodash';
-import { preenHistory } from '../libs/api-v3/preening';
+import { preenHistory } from '../libs/preening';
const Schema = mongoose.Schema;
@@ -22,7 +22,6 @@ export let tasksTypes = ['habit', 'daily', 'todo', 'reward'];
// Important
// When something changes here remember to update the client side model at common/script/libs/taskDefaults
export let TaskSchema = new Schema({
- _legacyId: String, // TODO Remove when v2 is deprecated
type: {type: String, enum: tasksTypes, required: true, default: tasksTypes[0]},
text: {type: String, required: true},
notes: {type: String, default: ''},
@@ -160,46 +159,6 @@ TaskSchema.methods.scoreChallengeTask = async function scoreChallengeTask (delta
await chalTask.save();
};
-
-// Methods to adapt the new schema to API v2 responses (mostly tasks inside the user model)
-// These will be removed once API v2 is discontinued
-
-// toJSON for API v2
-TaskSchema.methods.toJSONV2 = function toJSONV2 () {
- let toJSON = this.toJSON();
- if (toJSON._legacyId) {
- toJSON.id = toJSON._legacyId;
- } else {
- toJSON.id = toJSON._id;
- }
-
- if (!toJSON.challenge) toJSON.challenge = {};
-
- let v3Tags = this.tags;
-
- toJSON.tags = {};
- v3Tags.forEach(tag => {
- toJSON.tags[tag] = true;
- });
-
- toJSON.dateCreated = this.createdAt;
-
- return toJSON;
-};
-
-TaskSchema.statics.fromJSONV2 = function fromJSONV2 (taskObj) {
- if (taskObj.id) taskObj._id = taskObj.id;
-
- let v2Tags = taskObj.tags || {};
-
- taskObj.tags = [];
- taskObj.tags = _.map(v2Tags, (tag, key) => key);
-
- return taskObj;
-};
-
-// END of API v2 methods
-
export let Task = mongoose.model('Task', TaskSchema);
Task.schema.path('alias').validate(function valiateAliasNotTaken (alias, respond) {
diff --git a/website/server/models/user/hooks.js b/website/server/models/user/hooks.js
index 04ade1fa11..c2759fcfde 100644
--- a/website/server/models/user/hooks.js
+++ b/website/server/models/user/hooks.js
@@ -3,7 +3,7 @@ import _ from 'lodash';
import moment from 'moment';
import * as Tasks from '../task';
import Bluebird from 'bluebird';
-import baseModel from '../../libs/api-v3/baseModel';
+import baseModel from '../../libs/baseModel';
import schema from './schema';
diff --git a/website/server/models/user/methods.js b/website/server/models/user/methods.js
index 0b6a0469f3..ea53bf30c3 100644
--- a/website/server/models/user/methods.js
+++ b/website/server/models/user/methods.js
@@ -1,6 +1,4 @@
-import shared from '../../../../common';
-import _ from 'lodash';
-import * as Tasks from '../task';
+import common from '../../../../common';
import Bluebird from 'bluebird';
import {
chatDefaults,
@@ -25,12 +23,12 @@ schema.methods.getGroups = function getUserGroups () {
schema.methods.sendMessage = async function sendMessage (userToReceiveMessage, message) {
let sender = this;
- shared.refPush(userToReceiveMessage.inbox.messages, chatDefaults(message, sender));
+ common.refPush(userToReceiveMessage.inbox.messages, chatDefaults(message, sender));
userToReceiveMessage.inbox.newMessages++;
userToReceiveMessage._v++;
userToReceiveMessage.markModified('inbox.messages');
- shared.refPush(sender.inbox.messages, defaults({sent: true}, chatDefaults(message, userToReceiveMessage)));
+ common.refPush(sender.inbox.messages, defaults({sent: true}, chatDefaults(message, userToReceiveMessage)));
sender.markModified('inbox.messages');
let promises = [userToReceiveMessage.save(), sender.save()];
@@ -44,86 +42,13 @@ schema.methods.addNotification = function addUserNotification (type, data = {})
});
};
-// Methods to adapt the new schema to API v2 responses (mostly tasks inside the user model)
-// These will be removed once API v2 is discontinued
-
-// Get all the tasks belonging to a user,
-schema.methods.getTasks = function getUserTasks () {
- let args = Array.from(arguments);
- let cb;
- let type;
-
- if (args.length === 1) {
- cb = args[0];
- } else {
- type = args[0];
- cb = args[1];
- }
-
- let query = {
- userId: this._id,
- };
-
- if (type) query.type = type;
-
- Tasks.Task.find(query, cb);
-};
-
-// Given user and an array of tasks, return an API compatible user + tasks obj
-schema.methods.addTasksToUser = function addTasksToUser (tasks) {
- let obj = this.toJSON();
-
- obj.id = obj._id;
- obj.filters = {};
-
- obj.tags = obj.tags.map(tag => {
- return {
- id: tag.id,
- name: tag.name,
- challenge: tag.challenge,
- };
- });
-
- let tasksOrder = obj.tasksOrder; // Saving a reference because we won't return it
-
- obj.habits = [];
- obj.dailys = [];
- obj.todos = [];
- obj.rewards = [];
-
- obj.tasksOrder = undefined;
- let unordered = [];
-
- tasks.forEach((task) => {
- // We want to push the task at the same position where it's stored in tasksOrder
- let pos = tasksOrder[`${task.type}s`].indexOf(task._id);
- if (pos === -1) { // Should never happen, it means the lists got out of sync
- unordered.push(task.toJSONV2());
- } else {
- obj[`${task.type}s`][pos] = task.toJSONV2();
- }
- });
-
- // Reconcile unordered items
- unordered.forEach((task) => {
- obj[`${task.type}s`].push(task);
- });
-
- // Remove null values that can be created when inserting tasks at an index > length
- ['habits', 'dailys', 'rewards', 'todos'].forEach((type) => {
- obj[type] = _.compact(obj[type]);
- });
-
- return obj;
-};
-
-// Return the data maintaining backward compatibility
-schema.methods.getTransformedData = function getTransformedData (cb) {
- let self = this;
- this.getTasks((err, tasks) => {
- if (err) return cb(err);
- cb(null, self.addTasksToUser(tasks));
- });
-};
-
-// END of API v2 methods
\ No newline at end of file
+// Add stats.toNextLevel, stats.maxMP and stats.maxHealth
+// to a JSONified User object
+schema.methods.addComputedStatsToJSONObj = function addComputedStatsToUserJSONObj (obj) {
+ // NOTE: if an item is manually added to user.stats then
+ // common/fns/predictableRandom must be tweaked so the new item is not considered.
+ // Otherwise the client will have it while the server won't and the results will be different.
+ obj.stats.toNextLevel = common.tnl(this.stats.lvl);
+ obj.stats.maxHealth = common.maxHealth;
+ obj.stats.maxMP = common.statsComputed(this).maxMP;
+};
\ No newline at end of file
diff --git a/website/server/models/user/schema.js b/website/server/models/user/schema.js
index 5943a5b39b..659d031000 100644
--- a/website/server/models/user/schema.js
+++ b/website/server/models/user/schema.js
@@ -391,7 +391,7 @@ let schema = new Schema({
skin: {type: String, default: '915533'},
shirt: {type: String, default: 'blue'},
timezoneOffset: {type: Number, default: 0},
- sound: {type: String, default: 'off', enum: ['off', 'danielTheBard', 'gokulTheme', 'luneFoxTheme', 'wattsTheme', 'rosstavoTheme']},
+ sound: {type: String, default: 'off', enum: ['off', 'danielTheBard', 'gokulTheme', 'luneFoxTheme', 'wattsTheme', 'rosstavoTheme', 'dewinTheme']},
chair: {type: String, default: 'none'},
timezoneOffsetAtLastCron: Number,
language: String,
diff --git a/website/server/models/userNotification.js b/website/server/models/userNotification.js
index f0b0c58211..9d72831a13 100644
--- a/website/server/models/userNotification.js
+++ b/website/server/models/userNotification.js
@@ -1,5 +1,5 @@
import mongoose from 'mongoose';
-import baseModel from '../libs/api-v3/baseModel';
+import baseModel from '../libs/baseModel';
import { v4 as uuid } from 'uuid';
import validator from 'validator';
diff --git a/website/server/routes/api-v2/auth.js b/website/server/routes/api-v2/auth.js
deleted file mode 100644
index 66d1bebb3a..0000000000
--- a/website/server/routes/api-v2/auth.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var auth = require('../../controllers/api-v2/auth');
-var express = require('express');
-var i18n = require('../../libs/api-v2/i18n');
-var router = express.Router();
-import {
- getUserLanguage
-} from '../../middlewares/api-v3/language';
-
-/* auth.auth*/
-// auth.setupPassport(router); //TODO make this consistent with the others
-router.post('/register', getUserLanguage, auth.registerUser);
-router.post('/user/auth/local', getUserLanguage, auth.loginLocal);
-router.post('/user/auth/social', getUserLanguage, auth.loginSocial);
-router.delete('/user/auth/social', getUserLanguage, auth.auth, auth.deleteSocial);
-router.post('/user/reset-password', getUserLanguage, auth.resetPassword);
-router.post('/user/change-password', getUserLanguage, auth.auth, auth.changePassword);
-router.post('/user/change-username', getUserLanguage, auth.auth, auth.changeUsername);
-router.post('/user/change-email', getUserLanguage, auth.auth, auth.changeEmail);
-
-module.exports = router;
diff --git a/website/server/routes/api-v2/coupon.js b/website/server/routes/api-v2/coupon.js
deleted file mode 100644
index 7caee3f815..0000000000
--- a/website/server/routes/api-v2/coupon.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var nconf = require('nconf');
-var express = require('express');
-var router = express.Router();
-var auth = require('../../controllers/api-v2/auth');
-var coupon = require('../../controllers/api-v2/coupon');
-var i18n = require('../../libs/api-v2/i18n');
-import {
- getUserLanguage
-} from '../../middlewares/api-v3/language';
-
-router.get('/coupons', auth.authWithUrl, getUserLanguage, coupon.ensureAdmin, coupon.getCoupons);
-router.post('/coupons/generate/:event', auth.auth, getUserLanguage, coupon.ensureAdmin, coupon.generateCoupons);
-router.post('/user/coupon/:code', auth.auth, getUserLanguage, coupon.enterCode);
-
-module.exports = router;
diff --git a/website/server/routes/api-v2/swagger.js b/website/server/routes/api-v2/swagger.js
deleted file mode 100644
index c60d8364b6..0000000000
--- a/website/server/routes/api-v2/swagger.js
+++ /dev/null
@@ -1,778 +0,0 @@
-/*
----------- /api/v2 API ------------
-see https://github.com/wordnik/swagger-node-express
-Every url added to router is prefaced by /api/v2
-Note: Many user-route ops exist in ../../common/script/index.js#user.ops, so that they can (1) be called both
-client and server.
-v1 user. Requires x-api-user (user id) and x-api-key (api key) headers, Test with:
- */
-
-var user = require("../../controllers/api-v2/user");
-var groups = require("../../controllers/api-v2/groups");
-var members = require("../../controllers/api-v2/members");
-var auth = require("../../controllers/api-v2/auth");
-var hall = require("../../controllers/api-v2/hall");
-var challenges = require("../../controllers/api-v2/challenges");
-var dataexport = require("../../controllers/api-v2/dataexport");
-var nconf = require("nconf");
-var cron = user.cron;
-var _ = require('lodash');
-var content = require('../../../../common').content;
-var i18n = require('../../libs/api-v2/i18n');
-import {
- getUserLanguage
-} from '../../middlewares/api-v3/language';
-var forceRefresh = require('../../middlewares/forceRefresh').middleware;
-
-module.exports = function(swagger, v2) {
- var path = swagger.pathParam;
- var body = swagger.bodyParam;
- var query = swagger.queryParam;
-
- swagger.setAppHandler(v2);
- swagger.setErrorHandler("next");
- swagger.setHeaders = function() {};
- swagger.configureSwaggerPaths("", "/api-docs", "");
-
- var api = {
- '/status': {
- spec: {
- description: "Returns the status of the server (up or down). Does not require authentication."
- },
- action: function(req, res) {
- return res.json({
- status: "up"
- });
- }
- },
- '/content': {
- spec: {
- description: "Get all available content objects. This is essential, since Habit often depends on item keys (eg, when purchasing a weapon). Does not require authentication.",
- parameters: [query("language", "Optional language to use for content's strings. Default is english.", "string")]
- },
- action: user.getContent
- },
- '/content/paths': {
- spec: {
- description: "Show user model tree. Does not require authentication."
- },
- action: user.getModelPaths
- },
- "/export/history": {
- spec: {
- description: "Export user history",
- method: 'GET'
- },
- middleware: [auth.auth, getUserLanguage],
- action: dataexport.history
- },
- "/user/tasks/{id}/{direction}": {
- spec: {
- description: "Simple scoring of a task (Habit, Daily, To-Do, or Reward). This is most-likely the only API route you'll be using as a 3rd-party developer. The most common operation is for the user to gain or lose points based on some action (browsing Reddit, running a mile, 1 Pomodor, etc). Call this route, if the task you're trying to score doesn't exist, it will be created for you. When random events occur, the user._tmp variable will be filled. Critical hits can be accessed through user._tmp.crit . The Streakbonus can be accessed through user._tmp.streakBonus . Both will contain the multiplier value. When random drops occur, the following values are available: user._tmp.drop = {text,type,dialog,value,key,notes} ",
- parameters: [path("id", "ID of the task to score. If this task doesn't exist, a task will be created automatically", "string"), path("direction", "Either 'up' or 'down'", "string"), body('', "If you're creating a 3rd-party task, pass up any task attributes in the body (see TaskSchema).", 'object')],
- method: 'POST'
- },
- action: user.score
- },
- "/user/tasks:GET": {
- spec: {
- path: '/user/tasks',
- description: "Get all user's tasks"
- },
- action: user.getTasks
- },
- "/user/tasks:POST": {
- spec: {
- path: '/user/tasks',
- description: "Create a task",
- method: 'POST',
- parameters: [body("", "Send up the whole task (see TaskSchema)", "object")]
- },
- action: user.addTask
- },
- "/user/tasks/{id}:GET": {
- spec: {
- path: '/user/tasks/{id}',
- description: "Get an individual task",
- parameters: [path("id", "Task ID", "string")]
- },
- action: user.getTask
- },
- "/user/tasks/{id}:PUT": {
- spec: {
- path: '/user/tasks/{id}',
- description: "Update a user's task",
- method: 'PUT',
- parameters: [path("id", "Task ID", "string"), body("", "Send up the whole task (see TaskSchema)", "object")]
- },
- action: user.updateTask
- },
- "/user/tasks/{id}:DELETE": {
- spec: {
- path: '/user/tasks/{id}',
- description: "Delete a task",
- method: 'DELETE',
- parameters: [path("id", "Task ID", "string")]
- },
- action: user.deleteTask
- },
- "/user/tasks/{id}/sort": {
- spec: {
- method: 'POST',
- description: 'Sort tasks',
- parameters: [path("id", "Task ID", "string"), query("from", "Index where you're sorting from (0-based)", "integer"), query("to", "Index where you're sorting to (0-based)", "integer")]
- },
- action: user.sortTask
- },
- "/user/tasks/clear-completed": {
- spec: {
- method: 'POST',
- description: "Clears competed To-Dos (needed periodically for performance)."
- },
- action: user.clearCompleted
- },
- "/user/tasks/{id}/unlink": {
- spec: {
- method: 'POST',
- description: 'Unlink a task from its challenge',
- parameters: [path("id", "Task ID", "string"), query('keep', "When unlinking a challenge task, how to handle the orphans?", 'string', ['keep', 'keep-all', 'remove', 'remove-all'])]
- },
- middleware: [auth.auth, getUserLanguage],
- action: challenges.unlink
- },
- "/user/inventory/buy": {
- spec: {
- description: "Get a list of buyable gear"
- },
- action: user.getBuyList
- },
- "/user/inventory/buy/{key}": {
- spec: {
- method: 'POST',
- description: "Buy a gear piece and equip it automatically",
- parameters: [path('key', "The key of the item to buy (call /content route for available keys)", 'string', _.keys(content.gear.flat))]
- },
- action: user.buy
- },
- "/user/inventory/sell/{type}/{key}": {
- spec: {
- method: 'POST',
- description: "Sell inventory items back to Alexander",
- parameters: [path('type', "The type of object you're selling back.", 'string', ['eggs', 'hatchingPotions', 'food']), path('key', "The object key you're selling back (call /content route for available keys)", 'string')]
- },
- action: user.sell
- },
- "/user/inventory/purchase/{type}/{key}": {
- spec: {
- method: 'POST',
- description: "Purchase a Gem-purchasable item from Alexander",
- parameters: [path('type', "The type of object you're purchasing.", 'string', ['eggs', 'hatchingPotions', 'food', 'quests', 'special']), path('key', "The object key you're purchasing (call /content route for available keys)", 'string')]
- },
- action: user.purchase
- },
- "/user/inventory/hourglass/{type}/{key}": {
- spec: {
- method: 'POST',
- description: "Purchase a pet or mount using a Mystic Hourglass",
- parameters: [path('type', "The type of object you're purchasing.", 'string', ['pets', 'mounts']), path('key', "The object key you're purchasing (call /content route for available keys)", 'string')]
- },
- action: user.hourglassPurchase
- },
- "/user/inventory/mystery/{key}": {
- spec: {
- method: 'POST',
- description: "Purchase a Mystery Item Set using a Mystic Hourglass",
- parameters: [path('key', "The key for the Mystery Set you're purchasing (call /content route for available keys)", 'string')]
- },
- action: user.buyMysterySet
- },
- "/user/inventory/feed/{pet}/{food}": {
- spec: {
- method: 'POST',
- description: "Feed your pet some food",
- parameters: [path('pet', "The key of the pet you're feeding", 'string', _.keys(content.pets)), path('food', "The key of the food to feed your pet", 'string', _.keys(content.food))]
- },
- action: user.feed
- },
- "/user/inventory/equip/{type}/{key}": {
- spec: {
- method: 'POST',
- description: "Equip an item (either pet, mount, equipped or costume)",
- parameters: [path('type', "Type to equip", 'string', ['pet', 'mount', 'equipped', 'costume']), path('key', "The object key you're equipping (call /content route for available keys)", 'string')]
- },
- action: user.equip
- },
- "/user/inventory/hatch/{egg}/{hatchingPotion}": {
- spec: {
- method: 'POST',
- description: "Pour a hatching potion on an egg",
- parameters: [path('egg', "The egg key to hatch", 'string', _.keys(content.eggs)), path('hatchingPotion', "The hatching potion to pour", 'string', _.keys(content.hatchingPotions))]
- },
- action: user.hatch
- },
- "/user:GET": {
- spec: {
- path: '/user',
- description: "Get the full user object"
- },
- action: user.getUser
- },
- "/user/anonymized": {
- spec: {
- description: "Get the user object without any personal data"
- },
- action: user.getUserAnonymized
- },
- "/user:PUT": {
- spec: {
- path: '/user',
- method: 'PUT',
- description: "Update the user object (only certain attributes are supported)",
- parameters: [body('', 'The user object (see UserSchema)', 'object')]
- },
- action: user.update
- },
- "/user:DELETE": {
- spec: {
- path: '/user',
- method: 'DELETE',
- description: "Delete a user object entirely, USE WITH CAUTION!"
- },
- middleware: [auth.auth, getUserLanguage],
- action: user["delete"]
- },
- "/user/revive": {
- spec: {
- method: 'POST',
- description: "Revive your dead user"
- },
- action: user.revive
- },
- "/user/reroll": {
- spec: {
- method: 'POST',
- description: 'Drink the Fortify Potion (Note, it used to be called re-roll)'
- },
- action: user.reroll
- },
- "/user/reset": {
- spec: {
- method: 'POST',
- description: "Completely reset your account"
- },
- action: user.reset
- },
- "/user/sleep": {
- spec: {
- method: 'POST',
- description: "Toggle whether you're resting in the inn"
- },
- action: user.sleep
- },
- "/user/rebirth": {
- spec: {
- method: 'POST',
- description: "Rebirth your avatar"
- },
- action: user.rebirth
- },
- "/user/class/change": {
- spec: {
- method: 'POST',
- description: "Either remove your avatar's class, or change it to something new",
- parameters: [query('class', "The key of the class to change to. If not provided, user's class is removed.", 'string', ['warrior', 'healer', 'rogue', 'wizard', ''])]
- },
- action: user.changeClass
- },
- "/user/class/allocate": {
- spec: {
- method: 'POST',
- description: "Allocate one point towards an attribute",
- parameters: [query('stat', 'The stat to allocate towards', 'string', ['str', 'per', 'int', 'con'])]
- },
- action: user.allocate
- },
- "/user/class/cast/{spell}": {
- spec: {
- method: 'POST',
- description: "Casts a spell on a target.",
- parameters: [path('spell', "The key of the spell to cast (see ../../common#content/index.js)", 'string'), query('targetType', "The type of object you're targeting", 'string', ['party', 'self', 'user', 'task']), query('targetId', "The ID of the object you're targeting", 'string')]
- },
- action: user.cast
- },
- "/user/unlock": {
- spec: {
- method: 'POST',
- description: "Unlock a certain gem-purchaseable path (or multiple paths)",
- parameters: [query('path', "The path to unlock, such as hair.green or shirts.red,shirts.blue", 'string')]
- },
- action: user.unlock
- },
- "/user/batch-update": {
- spec: {
- method: 'POST',
- description: "This is an advanced route which is useful for apps which might for example need offline support. You can send a whole batch of user-based operations, which allows you to queue them up offline and send them all at once. The format is {op:'nameOfOperation',parameters:{},body:{},query:{}}",
- parameters: [body('', 'The array of batch-operations to perform', 'object')]
- },
- middleware: [forceRefresh, auth.auth, getUserLanguage, cron, user.sessionPartyInvite],
- action: user.batchUpdate
- },
- "/user/tags/{id}:GET": {
- spec: {
- path: '/user/tags/{id}',
- method: 'GET',
- description: "Get a tag",
- parameters: [path('id', 'The id of the tag to get', 'string')]
- },
- action: user.getTag
- },
- "/user/tags:POST": {
- spec: {
- path: "/user/tags",
- method: 'POST',
- description: 'Create a new tag',
- parameters: [body('', 'New tag (see UserSchema.tags)', 'object')]
- },
- action: user.addTag
- },
- "/user/tags:GET": {
- spec: {
- path: "/user/tags",
- method: 'GET',
- description: 'List all of a user\'s tags'
- },
- action: user.getTags
- },
- "/user/tags/sort": {
- spec: {
- method: 'POST',
- description: 'Sort tags',
- parameters: [query("from", "Index where you're sorting from (0-based)", "integer"), query("to", "Index where you're sorting to (0-based)", "integer")]
- },
- action: user.sortTag
- },
- "/user/tags/{id}:PUT": {
- spec: {
- path: '/user/tags/{id}',
- method: 'PUT',
- description: "Edit a tag",
- parameters: [path('id', 'The id of the tag to edit', 'string'), body('', 'Tag edits (see UserSchema.tags)', 'object')]
- },
- action: user.updateTag
- },
- "/user/tags/{id}:DELETE": {
- spec: {
- path: '/user/tags/{id}',
- method: 'DELETE',
- description: 'Delete a tag',
- parameters: [path('id', 'Id of tag to delete', 'string')]
- },
- action: user.deleteTag
- },
- "/user/webhooks": {
- spec: {
- method: 'POST',
- description: 'Create a new webhook',
- parameters: [body('', 'New Webhook {url:"webhook endpoint (required)", id:"id of webhook (shared.uuid(), optional)", enabled:"whether webhook is enabled (true by default, optional)"}', 'object')]
- },
- action: user.addWebhook
- },
- "/user/webhooks/{id}:PUT": {
- spec: {
- path: '/user/webhooks/{id}',
- method: 'PUT',
- description: "Edit a webhook",
- parameters: [path('id', 'The id of the webhook to edit', 'string'), body('', 'New Webhook {url:"webhook endpoint (required)", id:"id of webhook (shared.uuid(), optional)", enabled:"whether webhook is enabled (true by default, optional)"}', 'object')]
- },
- action: user.updateWebhook
- },
- "/user/webhooks/{id}:DELETE": {
- spec: {
- path: '/user/webhooks/{id}',
- method: 'DELETE',
- description: 'Delete a webhook',
- parameters: [path('id', 'Id of webhook to delete', 'string')]
- },
- action: user.deleteWebhook
- },
- "/user/pushDevice": {
- spec: {
- method: 'POST',
- description: 'Add a new push devices registration ID',
- parameters: [body('', 'New push registration { regId: "123123", type: "android"}', 'object')]
- },
- action: user.addPushDevice
- },
- "/groups:GET": {
- spec: {
- path: '/groups',
- description: "Get a list of groups",
- parameters: [query('type', "Comma-separated types of groups to return, eg 'party,guilds,public,tavern'", 'string')]
- },
- middleware: [auth.auth, getUserLanguage],
- action: groups.list
- },
- "/groups:POST": {
- spec: {
- path: '/groups',
- method: 'POST',
- description: 'Create a group',
- parameters: [body('', 'Group object (see GroupSchema)', 'object')]
- },
- middleware: [auth.auth, getUserLanguage],
- action: groups.create
- },
- "/groups/{gid}:GET": {
- spec: {
- path: '/groups/{gid}',
- description: "Get a group. The party the user currently is in can be accessed with the gid 'party'.",
- parameters: [path('gid', 'Group ID', 'string')]
- },
- middleware: [auth.auth, getUserLanguage],
- action: groups.get
- },
- "/groups/{gid}:POST": {
- spec: {
- path: '/groups/{gid}',
- method: 'POST',
- description: "Edit a group",
- parameters: [body('', 'Group object (see GroupSchema)', 'object')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.update
- },
- "/groups/{gid}/join": {
- spec: {
- method: 'POST',
- description: 'Join a group',
- parameters: [path('gid', 'Id of the group to join', 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.join
- },
- "/groups/{gid}/leave": {
- spec: {
- method: 'POST',
- description: 'Leave a group',
- parameters: [path('gid', 'ID of the group to leave', 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.leave
- },
- "/groups/{gid}/invite": {
- spec: {
- method: 'POST',
- description: "Invite a user to a group",
- parameters: [path('gid', 'Group id', 'string'), body('', 'a payload of invites either under body.uuids or body.emails, only one of them!', 'object')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.invite
- },
- "/groups/{gid}/removeMember": {
- spec: {
- method: 'POST',
- description: "Remove / boot a member from a group",
- parameters: [path('gid', 'Group id', 'string'), query('uuid', 'User id to boot', 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.removeMember
- },
- "/groups/{gid}/questAccept": {
- spec: {
- method: 'POST',
- description: "Accept a quest invitation",
- parameters: [path('gid', "Group id", 'string'), query('key', "optional. if provided, trigger new invite, if not, accept existing invite", 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.questAccept
- },
- "/groups/{gid}/questReject": {
- spec: {
- method: 'POST',
- description: 'Reject quest invitation',
- parameters: [path('gid', 'Group id', 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.questReject
- },
- "/groups/{gid}/questCancel": {
- spec: {
- method: 'POST',
- description: 'Cancel quest before it starts (in invitation stage)',
- parameters: [path('gid', 'Group to cancel quest in', 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.questCancel
- },
- "/groups/{gid}/questAbort": {
- spec: {
- method: 'POST',
- description: 'Abort quest after it has started (all progress will be lost)',
- parameters: [path('gid', 'Group to abort quest in', 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.questAbort
- },
- "/groups/{gid}/questLeave": {
- spec: {
- method: 'POST',
- description: 'Leave an active quest (Quest leaders cannot leave active quests. They must abort the quest to leave)',
- parameters: [path('gid', 'Group to leave quest in', 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.questLeave
- },
- "/groups/{gid}/chat:GET": {
- spec: {
- path: "/groups/{gid}/chat",
- description: "Get all chat messages",
- parameters: [path('gid', 'Group to return the chat from ', 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.getChat
- },
- "/groups/{gid}/chat:POST": {
- spec: {
- method: 'POST',
- path: "/groups/{gid}/chat",
- description: "Send a chat message",
- parameters: [query('message', 'Chat message', 'string'), path('gid', 'Group id', 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.postChat
- },
- "/groups/{gid}/chat/seen": {
- spec: {
- method: 'POST',
- description: "Flag chat messages for a particular group as seen",
- parameters: [path('gid', 'Group id', 'string')]
- },
- action: groups.seenMessage
- },
- "/groups/{gid}/chat/{messageId}": {
- spec: {
- method: 'DELETE',
- description: 'Delete a chat message in a given group',
- parameters: [path('gid', 'ID of the group containing the message to be deleted', 'string'), path('messageId', 'ID of message to be deleted', 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.deleteChatMessage
- },
- "/groups/{gid}/chat/{mid}/like": {
- spec: {
- method: 'POST',
- description: "Like a chat message",
- parameters: [path('gid', 'Group id', 'string'), path('mid', 'Message id', 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.likeChatMessage
- },
- "/groups/{gid}/chat/{mid}/flag": {
- spec: {
- method: 'POST',
- description: "Flag a chat message",
- parameters: [path('gid', 'Group id', 'string'), path('mid', 'Message id', 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.flagChatMessage
- },
- "/groups/{gid}/chat/{mid}/clearflags": {
- spec: {
- method: 'POST',
- description: "Clear flag count from message and unhide it",
- parameters: [path('gid', 'Group id', 'string'), path('mid', 'Message id', 'string')]
- },
- middleware: [auth.auth, getUserLanguage, groups.attachGroup],
- action: groups.clearFlagCount
- },
- "/members/{uuid}:GET": {
- spec: {
- path: '/members/{uuid}',
- description: "Get a member.",
- parameters: [path('uuid', 'Member ID', 'string')]
- },
- middleware: [getUserLanguage],
- action: members.getMember
- },
- "/members/{uuid}/message": {
- spec: {
- method: 'POST',
- description: 'Send a private message to a member',
- parameters: [path('uuid', 'The UUID of the member to message', 'string'), body('', '{"message": "The private message to send"}', 'object')]
- },
- middleware: [auth.auth],
- action: members.sendPrivateMessage
- },
- "/members/{uuid}/block": {
- spec: {
- method: 'POST',
- description: 'Block a member from sending private messages',
- parameters: [path('uuid', 'The UUID of the member to message', 'string')]
- },
- middleware: [auth.auth],
- action: user.blockUser
- },
- "/members/{uuid}/gift": {
- spec: {
- method: 'POST',
- description: 'Send a gift to a member',
- parameters: [path('uuid', 'The UUID of the member', 'string'), body('', '{"type": "gems or subscription", "gems":{"amount":Number, "fromBalance":Boolean}, "subscription":{"months":Number}}', 'object')]
- },
- middleware: [auth.auth],
- action: members.sendGift
- },
- "/hall/heroes": {
- spec: {},
- middleware: [auth.auth, getUserLanguage],
- action: hall.getHeroes
- },
- "/hall/heroes/{uid}:GET": {
- spec: {
- path: "/hall/heroes/{uid}"
- },
- middleware: [auth.auth, getUserLanguage, hall.ensureAdmin],
- action: hall.getHero
- },
- "/hall/heroes/{uid}:POST": {
- spec: {
- method: 'POST',
- path: "/hall/heroes/{uid}"
- },
- middleware: [auth.auth, getUserLanguage, hall.ensureAdmin],
- action: hall.updateHero
- },
- "/hall/patrons": {
- spec: {
- parameters: [query('page', 'Page number to fetch (this list is long)', 'string')]
- },
- middleware: [auth.auth, getUserLanguage],
- action: hall.getPatrons
- },
- "/challenges:GET": {
- spec: {
- path: '/challenges',
- description: "Get a list of challenges"
- },
- middleware: [auth.auth, getUserLanguage],
- action: challenges.list
- },
- "/challenges:POST": {
- spec: {
- path: '/challenges',
- method: 'POST',
- description: "Create a challenge",
- parameters: [body('', 'Challenge object (see ChallengeSchema)', 'object')]
- },
- middleware: [auth.auth, getUserLanguage],
- action: challenges.create
- },
- "/challenges/{cid}:GET": {
- spec: {
- path: '/challenges/{cid}',
- description: 'Get a challenge',
- parameters: [path('cid', 'Challenge id', 'string')]
- },
- middleware: [auth.auth, getUserLanguage],
- action: challenges.get
- },
- "/challenges/{cid}/csv": {
- spec: {
- description: 'Get a challenge (csv format)',
- parameters: [path('cid', 'Challenge id', 'string')]
- },
- action: challenges.csv
- },
- "/challenges/{cid}:POST": {
- spec: {
- path: '/challenges/{cid}',
- method: 'POST',
- description: "Update a challenge",
- parameters: [path('cid', 'Challenge id', 'string'), body('', 'Challenge object (see ChallengeSchema)', 'object')]
- },
- middleware: [auth.auth, getUserLanguage],
- action: challenges.update
- },
- "/challenges/{cid}:DELETE": {
- spec: {
- path: '/challenges/{cid}',
- method: 'DELETE',
- description: "Delete a challenge",
- parameters: [path('cid', 'Challenge id', 'string')]
- },
- middleware: [auth.auth, getUserLanguage],
- action: challenges["delete"]
- },
- "/challenges/{cid}/close": {
- spec: {
- method: 'POST',
- description: 'Close a challenge',
- parameters: [path('cid', 'Challenge id', 'string'), query('uid', 'User ID of the winner', 'string', true)]
- },
- middleware: [auth.auth, getUserLanguage],
- action: challenges.selectWinner
- },
- "/challenges/{cid}/join": {
- spec: {
- method: 'POST',
- description: "Join a challenge",
- parameters: [path('cid', 'Challenge id', 'string')]
- },
- middleware: [auth.auth, getUserLanguage],
- action: challenges.join
- },
- "/challenges/{cid}/leave": {
- spec: {
- method: 'POST',
- description: 'Leave a challenge',
- parameters: [path('cid', 'Challenge id', 'string')]
- },
- middleware: [auth.auth, getUserLanguage],
- action: challenges.leave
- },
- "/challenges/{cid}/member/{uid}": {
- spec: {
- description: "Get a member's progress in a particular challenge",
- parameters: [path('cid', 'Challenge id', 'string'), path('uid', 'User id', 'string')]
- },
- middleware: [auth.auth, getUserLanguage],
- action: challenges.getMember
- }
- };
- if (nconf.get("NODE_ENV") === "development") {
- api["/user/addTenGems"] = {
- spec: {
- method: 'POST'
- },
- action: user.addTenGems
- };
- api["/user/addHourglass"] = {
- spec: {
- method: 'POST'
- },
- action: user.addHourglass
- };
- };
-
- _.each(api, function(route, path) {
- var base;
- if ((base = route.spec).description == null) {
- base.description = '';
- }
- _.defaults(route.spec, {
- path: path,
- nickname: path,
- notes: route.spec.description,
- summary: route.spec.description,
- parameters: [],
- errorResponses: [],
- method: 'GET'
- });
- if (route.middleware == null) {
- route.middleware = path.indexOf('/user') === 0 ? [auth.auth, getUserLanguage, cron] : [i18n.getUserLanguage];
- }
- swagger["add" + route.spec.method](route);
- return true;
- });
-
- return swagger.configure((nconf.get('BASE_URL')) + "/api/v2", "2");
-};
diff --git a/website/server/routes/api-v2/unsubscription.js b/website/server/routes/api-v2/unsubscription.js
deleted file mode 100644
index cbd2e16554..0000000000
--- a/website/server/routes/api-v2/unsubscription.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var express = require('express');
-var router = express.Router();
-var i18n = require('../../libs/api-v2/i18n');
-var unsubscription = require('../../controllers/api-v2/unsubscription');
-import {
- getUserLanguage
-} from '../../middlewares/api-v3/language';
-
-router.get('/unsubscribe', getUserLanguage, unsubscription.unsubscribe);
-
-module.exports = router;
diff --git a/website/server/routes/payments.js b/website/server/routes/payments.js
deleted file mode 100644
index 13e9ec9163..0000000000
--- a/website/server/routes/payments.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var nconf = require('nconf');
-var express = require('express');
-var router = express.Router();
-var auth = require('../controllers/api-v2/auth');
-var payments = require('../controllers/payments');
-var i18n = require('../libs/api-v2/i18n');
-import {
- getUserLanguage
-} from '../../middlewares/api-v3/language';
-
-router.get('/paypal/checkout', auth.authWithUrl, getUserLanguage, payments.paypalCheckout);
-router.get('/paypal/checkout/success', getUserLanguage, payments.paypalCheckoutSuccess);
-router.get('/paypal/subscribe', auth.authWithUrl, getUserLanguage, payments.paypalSubscribe);
-router.get('/paypal/subscribe/success', getUserLanguage, payments.paypalSubscribeSuccess);
-router.get('/paypal/subscribe/cancel', auth.authWithUrl, getUserLanguage, payments.paypalSubscribeCancel);
-router.post('/paypal/ipn', getUserLanguage, payments.paypalIPN); // misc ipn handling
-
-router.post('/stripe/checkout', auth.auth, getUserLanguage, payments.stripeCheckout);
-router.post('/stripe/subscribe/edit', auth.auth, getUserLanguage, payments.stripeSubscribeEdit);
-//router.get('/stripe/subscribe', auth.authWithUrl, getUserLanguage, payments.stripeSubscribe); // checkout route is used (above) with ?plan= instead
-router.get('/stripe/subscribe/cancel', auth.authWithUrl, getUserLanguage, payments.stripeSubscribeCancel);
-
-router.post('/amazon/verifyAccessToken', auth.auth, getUserLanguage, payments.amazonVerifyAccessToken);
-router.post('/amazon/createOrderReferenceId', auth.auth, getUserLanguage, payments.amazonCreateOrderReferenceId);
-router.post('/amazon/checkout', auth.auth, getUserLanguage, payments.amazonCheckout);
-router.post('/amazon/subscribe', auth.auth, getUserLanguage, payments.amazonSubscribe);
-router.get('/amazon/subscribe/cancel', auth.authWithUrl, getUserLanguage, payments.amazonSubscribeCancel);
-
-router.post('/iap/android/verify', auth.authWithUrl, /*getUserLanguage, */payments.iapAndroidVerify);
-router.post('/iap/ios/verify', auth.auth, /*getUserLanguage, */ payments.iapIosVerify);
-
-router.get('/api/v2/coupons/valid-discount/:code', /*auth.authWithUrl, getUserLanguage, */ payments.validCoupon);
-
-module.exports = router;
diff --git a/website/server/server.js b/website/server/server.js
index 2271552b21..6179b1cb77 100644
--- a/website/server/server.js
+++ b/website/server/server.js
@@ -1,8 +1,8 @@
import nconf from 'nconf';
-import logger from './libs/api-v3/logger';
+import logger from './libs/logger';
import express from 'express';
import http from 'http';
-import attachMiddlewares from './middlewares/api-v3/index';
+import attachMiddlewares from './middlewares/index';
import Bluebird from 'bluebird';
global.Promise = Bluebird;
@@ -13,11 +13,11 @@ const app = express();
app.set('port', nconf.get('PORT'));
// Setup translations
-import './libs/api-v3/i18n';
+import './libs/i18n';
// Load config files
-import './libs/api-v3/setupMongoose';
-import './libs/api-v3/setupPassport';
+import './libs/setupMongoose';
+import './libs/setupPassport';
// Load some schemas & models
import './models/challenge';
diff --git a/website/views/options/inventory/drops.jade b/website/views/options/inventory/drops.jade
index 67c2b80d4e..4604bcdf9f 100644
--- a/website/views/options/inventory/drops.jade
+++ b/website/views/options/inventory/drops.jade
@@ -110,61 +110,19 @@
button.btn.btn-primary.btn-block(ng-show='selectedFood', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedFood.text()}}", gold: "{{selectedFood.value}}"})
menu.inventory-list(type='list')
- li.customize-menu
- menu.pets-menu(label=env.t('eggs'))
- p.muted!=env.t('dropsExplanation')
+ li.customize-menu(ng-repeat='category in marketShopCategories')
+ menu.pets-menu(label='{{category.text}}')
+ p.muted(ng-bind-html='category.notes')
- div(ng-repeat='egg in Content.eggs', ng-if='egg.canBuy(user)')
- button.customize-option(class='Pet_Egg_{{::egg.key}}',
- popover='{{::egg.notes()}}', popover-append-to-body='true',
- popover-title!=env.t("egg", {eggType: "{{::egg.text()}}"}),
+ div(ng-repeat='item in category.items')
+ button.customize-option(class='{{item.class}}',
+ popover='{{item.notes}}', popover-append-to-body='true',
+ popover-title!='{{item.text}}',
popover-trigger='mouseenter', popover-placement='top',
- ng-click='purchase("eggs", egg)')
- p {{::egg.value}}
- span.Pet_Currency_Gem1x.inline-gems
-
- li.customize-menu
- menu.pets-menu(label=env.t('hatchingPotions'))
- p.muted!=env.t('dropsExplanation')
- div(ng-repeat='pot in Content.hatchingPotions', ng-if='!pot.premium')
- button.customize-option(class='Pet_HatchingPotion_{{::pot.key}}',
- popover='{{::pot.notes()}}', popover-append-to-body='true',
- popover-title!=env.t("potion", {potionType: "{{::pot.text()}}"}),
- popover-trigger='mouseenter', popover-placement='top',
- ng-click='purchase("hatchingPotions", pot)')
- p
- | {{::pot.value}}
- span.Pet_Currency_Gem1x.inline-gems
-
- // li.customize-menu
- menu.pets-menu!=env.t('magicHatchingPotions') + " - " + env.t('springEventAvailability')
- p.muted=env.t('premiumPotionNoDropExplanation')
- div(ng-repeat='pot in Content.hatchingPotions', ng-if='pot.premium && pot.canBuy(user)')
- button.customize-option(class='Pet_HatchingPotion_{{::pot.key}}',
- popover='{{::pot.notes()}} {{::pot.addlNotes()}}', popover-append-to-body='true',
- popover-title!=env.t("potion", {potionType: "{{::pot.text()}}"}),
- popover-trigger='mouseenter', popover-placement='top',
- ng-click='purchase("hatchingPotions", pot)')
- p
- | {{::pot.value}}
- span.Pet_Currency_Gem1x.inline-gems
-
- li.customize-menu
- menu.pets-menu(label=env.t('food'))
- p.muted!=env.t('dropsExplanation')
- div(ng-repeat='food in Content.food', ng-if='food.canBuy(user)')
- button.customize-option(class='Pet_Food_{{::food.key}}',
- popover='{{::food.notes()}}', popover-title='{{::food.text()}}',
- popover-trigger='mouseenter', popover-placement='top',
- popover-append-to-body='true',
- ng-click='purchase("food", food)')
- p
- | {{::food.value}}
- span.Pet_Currency_Gem1x.inline-gems
-
- li.customize-menu
- menu.pets-menu(label=env.t('quests'))
- p=env.t('whereAreMyQuests')
+ ng-click='purchase(category.identifier, item)')
+ p {{item.value}}
+ span.Pet_Currency_Gem1x.inline-gems(ng-if='item.currency === "gems"')
+ span(class='shop_gold', ng-if='item.currency === "gold"')
li.customize-menu
menu.pets-menu(label=env.t('special'))
diff --git a/website/views/options/inventory/quests.jade b/website/views/options/inventory/quests.jade
index 53a8dfa3e4..b53a3c6422 100644
--- a/website/views/options/inventory/quests.jade
+++ b/website/views/options/inventory/quests.jade
@@ -18,20 +18,20 @@ include ../../shared/mixins
.col-md-6.border-left
li.customize-menu
h3.equipment-title=env.t('questsForSale')
- div(ng-repeat='type in Content.userCanOwnQuestCategories')
- menu.pets-menu(label='{{env.t(type + "Quests")}}')
- div(ng-repeat='quest in Content.questsByLevel', ng-if='quest.canBuy(user) && quest.category === type')
- button.customize-option(ng-class='lockQuest(quest) ? "inventory_quest_scroll_locked inventory_quest_scroll_{{::quest.key}}_locked locked" : "inventory_quest_scroll inventory_quest_scroll_{{::quest.key}}"',
- data-popover-html="{{::lockQuest(quest,true) ? env.t('scrollsPre') : questPopover(quest) | markdown}}",
- popover-title='{{::quest.text()}}', popover-append-to-body="true",
+ div(ng-repeat='category in questShopCategories')
+ menu.pets-menu(label='{{category.text}}')
+ div(ng-repeat='quest in category.items')
+ button.customize-option(ng-class='quest.class',
+ data-popover-html="{{quest.locked ? env.t('scrollsPre') : questPopover(quest) | markdown}}",
+ popover-title='{{quest.text}}', popover-append-to-body="true",
popover-trigger='mouseenter', ng-click='buyQuest(quest.key)')
p(ng-if='quest.unlockCondition')
| {{::quest.unlockCondition.text()}}
- p(ng-if='!quest.unlockCondition && quest.category !== "gold" && !lockQuest(quest)')
+ p(ng-if='!quest.unlockCondition && category.identifier !== "gold" && !quest.locked')
| {{::quest.value}}
span.Pet_Currency_Gem1x.inline-gems
- p(ng-if='quest.category === "gold" && !lockQuest(quest)')
- | {{::quest.goldValue}}
+ p(ng-if='category.identifier === "gold" && !quest.locked')
+ | {{::quest.value}}
span.shop_gold
- p(ng-if='quest.lvl && lockQuest(quest)')=env.t('level')
+ p(ng-if='quest.lvl && quest.locked')=env.t('level')
| {{::quest.lvl}}
diff --git a/website/views/options/inventory/seasonal-shop.jade b/website/views/options/inventory/seasonal-shop.jade
index 2c1ab34a81..9e59b18a7d 100644
--- a/website/views/options/inventory/seasonal-shop.jade
+++ b/website/views/options/inventory/seasonal-shop.jade
@@ -1,25 +1,16 @@
.container-fluid
.stable.row: .col-xs-12
- div(class="#{env.worldDmg.seasonalShop ? 'seasonalshop_broken' : 'seasonalshop_open'}").pull-left-sm.col-centered
+ div(class="#{env.worldDmg.seasonalShop ? 'seasonalshop_broken' : 'seasonalshop_closed'}").pull-left-sm.col-centered
.popover.static-popover.fade.right.in.pull-left-sm.col-centered
.arrow.hidden-xs
- h3.popover-title!=env.t('seasonalShopTitle', {linkStart:"", linkEnd: " "})
+ h3.popover-title!=env.t('seasonalShopClosedTitle', {linkStart:"", linkEnd: " "})
.popover-content
- p(ng-if='!env.worldDmg.seasonalShop')!=env.t('seasonalShopSummerText')
- p(ng-if='env.worldDmg.seasonalShop')!=env.t('seasonalShopSummerText')
+ p(ng-if='!env.worldDmg.seasonalShop')!=env.t('seasonalShopClosedText')
+ p(ng-if='env.worldDmg.seasonalShop')!=env.t('seasonalShopClosedText')
- .well(ng-if='User.user.achievements.rebirths > 0')=env.t('seasonalShopRebirth')
+ // .well(ng-if='User.user.achievements.rebirths > 0')=env.t('seasonalShopRebirth')
- li.customize-menu.inventory-gear
- // menu.pets-menu(label=env.t('quests'))
- div(ng-repeat='quest in ::getSeasonalShopQuests()')
- button.customize-option(ng-class='(quest.previous && !user.achievements.quests[quest.previous]) ? "inventory_quest_scroll_locked inventory_quest_scroll_{{::quest.key}}_locked locked" : "inventory_quest_scroll inventory_quest_scroll_{{::quest.key}}"'
- data-popover-html="{{::quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : questPopover(quest) | markdown}}",
- popover-append-to-body='true', popover-title='{{::quest.text()}}',
- popover-trigger='mouseenter', popover-placement='right',
- ng-click='buyQuest(quest.key)')
- p {{::quest.value}}
- span.Pet_Currency_Gem1x.inline-gems
+ // li.customize-menu.inventory-gear
menu.pets-menu(label=env.t('seasonalItems'))
div
button.customize-option(class='inventory_special_seafoam',
@@ -30,24 +21,12 @@
ng-click='purchase("special", Content.spells.special.seafoam)')
p {{::Content.spells.special.seafoam.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 ::{summerWarrior:env.t("daringSwashbucklerSet"), summerMage:env.t("emeraldMermageSet"), summerHealer:env.t("reefSeahealerSet"), summerRogue:env.t("roguishPirateSet"), summer2015Warrior:env.t("sunfishWarriorSet"), summer2015Mage:env.t("shipSoothsayerSet"), summer2015Healer:env.t("strappingSailorSet"), summer2015Rogue:env.t("reefRenegadeSet")}')
- div(ng-repeat='item in ::getSeasonalShopArray(set)',
- ng-class="{transparent: user.items.gear.owned[item.key] !== undefined}")
- button.customize-option(class='shop_{{::item.key}}',
- popover='{{::item.notes()}}', popover-title='{{::item.text()}}',
+ menu.pets-menu(label='{{category.text}}', ng-repeat='category in seasonalShopCategories')
+ div(ng-repeat='item in category.items',
+ ng-class="{transparent: user.items.gear.owned[item.key] !== undefined}",
+ ng-if='!user.items.gear.owned[item.key]')
+ button.customize-option(class='shop_{{item.key}}',
+ popover='{{item.notes}}', popover-title='{{item.text}}',
popover-trigger='mouseenter', popover-placement='right',
popover-append-to-body='true',
ng-click='purchase(item.type,item)')
diff --git a/website/views/options/inventory/time-travelers.jade b/website/views/options/inventory/time-travelers.jade
index be0c3ea7dd..80b3a35e7e 100644
--- a/website/views/options/inventory/time-travelers.jade
+++ b/website/views/options/inventory/time-travelers.jade
@@ -20,19 +20,10 @@
.row
.col-md-12
li.customize-menu.inventory-gear
- each prepend, type in {pets:'Pet-', mounts:'Mount_Head_'}
- menu.pets-menu(label=env.t('#{type}'), ng-if='!hasAllTimeTravelerItemsOfType("#{type}")')
- div(ng-repeat='(item, text) in Content.timeTravelStable["#{type}"]', style='margin-top:0')
- button.pet-button(class='#{prepend}{{::item}}', style='margin-top:0',
- ng-if='!user.items["#{type}"][item]',
- popover='{{::text()}}', popover-trigger='mouseenter',
- popover-placement='right', popover-append-to-body='true',
- ng-click='clickTimeTravelItem("#{type}",item)')
- li.customize-menu.inventory-gear
- menu.pets-menu(label='{{::set.text()}}', ng-repeat='set in Content.timeTravelerStore(user.items.gear.owned)')
- div(ng-repeat='item in set.items')
- button.customize-option(class='shop_{{::item.key}}',
- popover='{{::item.notes()}}', popover-title='{{::item.text()}}',
+ menu.pets-menu(label='{{::category.text}}', ng-repeat='category in timeTravelersCategories')
+ div(ng-repeat='item in category.items', ng-if='category.identifier === "pets" || category.identifier === "mounts" ? !user.items[category.identifier][item.key] : !user.items.gear.owned[item.key]')
+ button.customize-option(class='{{item.class ? item.class : "shop_"+item.key}}',
+ popover='{{item.notes}}', popover-title='{{item.text}}',
popover-trigger='mouseenter', popover-placement='right',
popover-append-to-body='true',
- ng-click='User.buyMysterySet({params:{key:set.key}})')
+ ng-click='category.purchaseAll ? User.buyMysterySet({params:{key:category.identifier}}) : clickTimeTravelItem(category.identifier,item.key)')
diff --git a/website/views/options/profile.jade b/website/views/options/profile.jade
index c37d920675..036d0cf529 100644
--- a/website/views/options/profile.jade
+++ b/website/views/options/profile.jade
@@ -169,7 +169,7 @@ mixin customizeProfile(mobile)
+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', ['clownfish','deepocean','merblue','mergold','mergreen','merruby','shark','tropicalwater'], 'splashySkins')
+ +buyPref('skin', ['clownfish','deepocean','merblue','mergold','mergreen','merruby','shark','tropicalwater'], 'splashySkins', 'disabled')
script(id='partials/options.profile.avatar.html', type='text/ng-template')
diff --git a/website/views/shared/footer.jade b/website/views/shared/footer.jade
index aaa14f8b42..1537fefebe 100644
--- a/website/views/shared/footer.jade
+++ b/website/views/shared/footer.jade
@@ -25,7 +25,9 @@ footer.footer(ng-controller='FooterCtrl')
li
a(href='/static/features')=env.t('companyAbout')
li
- a(target='_blank', href='http://blog.habitrpg.com/')=env.t('companyBlog')
+ a(target='_blank', href='https://habitica.wordpress.com/')=env.t('companyBlog')
+ li
+ a(target='_blank', href='http://blog.habitrpg.com/')=env.t('tumblr')
li
a(href='http://habitica.wikia.com/wiki/App_and_Extension_Integrations', target='_blank')=env.t('companyExtensions')
li
@@ -64,7 +66,7 @@ footer.footer(ng-controller='FooterCtrl')
li
a(target='_blank', href='/apidoc')=env.t('APIv3')
li
- a(target='_blank', href='/static/api-v2')=env.t('APIv2')
+ a(target='_blank', href='http://habitica.wikia.com/wiki/Guidance_for_Blacksmiths')=env.t('guidanceForBlacksmiths')
.col-sm-3
if (env.NODE_ENV === 'production' && !env.IS_MOBILE)
h4=env.t('footerSocial')
diff --git a/website/views/shared/header/menu.jade b/website/views/shared/header/menu.jade
index 7c6c7b03fa..30dd70a05e 100644
--- a/website/views/shared/header/menu.jade
+++ b/website/views/shared/header/menu.jade
@@ -223,9 +223,9 @@ nav.toolbar(ng-controller='MenuCtrl')
div
ul.toolbar-submenu
// Using [{k,v}] instead of {k:v,k:v} to maintain order ('off' at top)
- for theme in ['off', 'danielTheBard', 'gokulTheme', 'luneFoxTheme', 'wattsTheme', 'rosstavoTheme']
+ for theme in ['off', 'danielTheBard', 'gokulTheme', 'luneFoxTheme', 'wattsTheme', 'rosstavoTheme', 'dewinTheme']
li
- a(ng-class="{'bg-primary':user.preferences.sound === '# {theme}'}", ng-click="set({'preferences.sound':'#{theme}'})")=env.t('audioTheme_'+theme)
+ a(ng-class="{'bg-info':user.preferences.sound === '#{theme}'}", ng-click="set({'preferences.sound':'#{theme}'})")=env.t('audioTheme_'+theme)
ul.toolbar-controls
li.toolbar-controls-button
a(data-close-menu)=env.t('close')
diff --git a/website/views/shared/new-stuff.jade b/website/views/shared/new-stuff.jade
index 2a55d94656..d8681a0957 100644
--- a/website/views/shared/new-stuff.jade
+++ b/website/views/shared/new-stuff.jade
@@ -1,25 +1,155 @@
-h2 7/15/2016 - NEW IOS UPDATE AND STAFF SPOTLIGHT!
+h3 8/3/2016 - AUGUST BACKGROUNDS AND ARMOIRE ITEMS; NEW AUDIO THEME
+ .promo_backgrounds_armoire_201608.pull-right
hr
tr
td
- h3 New iOS Update: Bug Fixes!
- p We've released a new iOS update focusing on stability and bug fixes!
- br
- p It includes multiple crash fixes and clears up bugs such as the problems with rewards. Be sure to download it now for a better Habitica experience!
- br
- .promo_staff_spotlight_Lemoness.pull-right
- p If you like the improvements that we’ve been making to our app, please consider reviewing this new version. It really helps us out! Old reviews get hidden with each update, but if you go to the review section you can re-post them again with a single tap. We hope you enjoy the update!
- p.small.muted by viirus
+ h3 August Backgrounds
+ p We’ve added three new backgrounds: Stormy Ship, Idyllic Cabin, and Mountain Pyramid. Get them now from the Background Shop and show off your avatars in the Tavern!
+ p.small.muted by JInjooHat, KusSv, and Beffymaroo
tr
td
- h3 Staff Spotlight: Lemoness!
- p There's a new Staff Spotlight on the blog, featuring an interview with Leslie (aka Lemoness)! Check it out to learn about her favorite Habitica pets, her best tips for productivity, and more.
+ h3 August Armoire Items: Falconer Set
+ p There’s new Gold-purchasable equipment in the Enchanted Armoire, including the Falconer set. The Enchanted Armoire unlocks when you achieve Ultimate Gear. Better work hard on your real-life tasks to earn all the pieces!
+ p.small.muted by Mako413
+ tr
+ td
+ h3 New Audio Theme
+ p There's a new audio theme available: Dewin's Theme! Select this theme from the 🔈 drop-down to level up to sounds with an 8-bit flavor.
+ p.small.muted by Dewin
if menuItem !== 'oldNews'
hr
a(href='/static/old-news', target='_blank') Read older news
mixin oldNews
+ h2 8/1/2016 - TAKE THIS CHALLENGE AND GUILD SPOTLIGHT
+ tr
+ td
+ .promo_takethis_armor.pull-right
+ h3 New Take This Challenge
+ p The next Take This Challenge has launched, Cast of Characters , with a focus on picturing your feelings as characters in a story. Be sure to check it out to earn additional pieces of the Take This armor set!
+ br
+ p Take This is a nonprofit that seeks to inform the gamer community about mental health issues, to provide education about mental disorders and mental illness prevention, and to reduce the stigma of mental illness.
+ br
+ p Congratulations to the winners of the last Take This Challenge, "Check Your HP": grand prize winner bookguinea, and runners-up abbey, SeanXiaaa, pushkin89, fightorflight, and ProfDzul. Plus, all participants in that Challenge have received a piece of the Take This item set . Enjoy!
+ p.small.muted by Lemoness, SabreCat, Doctor B, and the Take This team
+ tr
+ td
+ h3 Guild Spotlight
+ p There's a new Guild Spotlight on the blog ! Check it out now to learn about some awesome Habitica Guilds that highlight fun fandoms.
+ p.small.muted by Lemoness
+ h2 7/31/2016 - HABITICA NAMING DAY AND GRYPHON PETS/MOUNTS!
+ tr
+ td
+ span.Mount_Body_Gryphon-RoyalPurple.pull-right
+ span.Mount_Head_Gryphon-RoyalPurple.pull-right(style='margin:0')
+ h3 Habitica Naming Day
+ p Happy Habitica Naming day! In honor of the day when we changed the name of the app from HabitRPG to Habitica, we've given everyone an achievement, as well as some delicious cake for your pets and mounts.
+ p.small.muted by Lemoness and SabreCat
+ tr
+ td
+ .Pet-Gryphon-RoyalPurple.pull-right
+ h3 Habitica Gryphon Mount and Pet
+ p Speaking of pets and mounts, we've given all new users our Purple Gryphon Mount, Melior! If you already received Melior last year, we've given you his little sister Meliora, a Purple Gryphon Pet. You can find them in the Rare Pet/Rare Mount sections of the stable!
+ br
+ p Thanks for being a Habitica user -- you all mean so much to us. We hope that you enjoy your presents!
+ p.small.muted by Lemoness and Baconsaur
+ h2 7/29/2016 - LAST CHANCE FOR SUMMER SPLASH; MOBILE UPDATES
+ tr
+ td
+ .promo_summer_classes_2016.pull-right
+ h3 Last Chance for Summer Splash Outfits, Hair and Skins, and Seafoam!
+ p Today is the final day of the Summer Splash Festival, so if you still have any remaining Summer Splash Items that you want to buy, you'd better do it now! The Seasonal Edition items and Skins won't be back until next June, and if the Limited Edition items return they will have increased prices or changed art, so strike while the summer is hot!
+ tr
+ td
+ .promo_mystery_201607.pull-right
+ h3 Last Chance for Seafloor Rogue Set
+ p Reminder: this is the final day to subscribe and receive the Seafloor Rogue Set! Thanks so much for your support <3
+ p.small.muted by Lemoness
+ tr
+ td
+ h3 New iOS Update: Shops!
+ p We've released a new iOS update which contains the Market, Quest Shop, and Seasonal Shop!
+ br
+ p Plus, we've fixed some bugs, including the issues with the FAQ and using items on the iPad. Be sure to download it now for a better Habitica experience!
+ br
+ p If you like the improvements that we’ve been making to our app, please consider reviewing this new version. It really helps us out! Old reviews get hidden with each update, but if you go to the review section you can re-post them again with a single tap. We hope you enjoy the update!
+ p.small.muted by viirus
+ tr
+ td
+ h3 New Android Update: Shops and Task Reordering!
+ p We've released a new Android update which contains the Market, Quest Shop, and Seasonal Shop!
+ br
+ p Plus, we've also introduced the ability to reorder tasks and copy chat messages to your clipboard. Be sure to download it now for a better Habitica experience!
+ br
+ p If you like the improvements that we’ve been making to our app, please consider reviewing this new version. It really helps us out! We hope you enjoy the update.
+ p.small.muted by viirus, jjbillings, and schrockblock
+ h2 7/26/2016 - JULY SUBSCRIBER ITEMS
+ tr
+ td
+ .promo_mystery_201607.pull-right
+ h3 July Subscriber Items Revealed!
+ p The July Subscriber Items have been revealed: the Seafloor Rogue Item Set! You still have seven days to subscribe and receive the item set.
+ br
+ p Subscribers also receive the ability to buy Gems for Gold -- the longer you subscribe, the more Gems you can buy per month! There are other perks as well, such as longer access to uncompressed data. Best of all, your support directly keeps Habitica running. Thank you very much -- it means a lot to us!
+ p.small.muted by Lemoness
+ h2 7/21/2016 - ANDROID UPDATE AND GTD WIKI FEATURE!
+ tr
+ td
+ h3 Android Update: Inbox and Private Messages
+ p We've released a new Android update !
+ br
+ p Now you can send and receive Private Messages from the app with the new Inbox feature! We've also fixed a variety of bugs. Be sure to download this update now for a better Habitica experience!
+ br
+ p If you like the improvements that we’ve been making to our app, please consider reviewing this new version. It really helps us out! We hope you enjoy the update.
+ p.small.muted by viirus and TheHollidayInn
+ tr
+ td
+ h3 Featured Wiki Article: Getting Things Done with Habitica
+ p This month's featured Wiki article is about ideas for implementing David Allen's Getting Things Done method within Habitica. We hope that it will help you out! Be sure to check it out, and let us know what you think by reaching out on Twitter , Facebook , and Tumblr .
+ p.small.muted by Redphoenix and the Wiki Wizards
+ h2 7/19/2016 - HABITICA AT COMIC-CON, INFO FOR DEVELOPERS, LIMITED-EDITION HABITRPG POSTCARDS, AND UNCONVENTIONAL ARMOR PROMO CODES
+ tr
+ td
+ h3 Habitica at Comic-Con International: San Diego
+ p Leslie and Vicky, aka Lemoness and Redphoenix, will be attending Comic-Con this year, and we'll be giving away plenty of Habitica stickers and promo codes to earn the Unconventional Armor set! Follow the Habitica Twitter account for information on Habitica meet-ups. Hope to see you there!
+ tr
+ td
+ .promo_unconventional_armor.pull-right
+ h3 Limited Edition Habitica Postcards and Promo Codes
+ p Even if you can't come to meet us at Comic-Con, we've decided on a new way to earn the Unconventional Armor set. If you can't come to us, send something in your stead....
+ br
+ p Until the end of August, if you mail the Habitica staff a postcard to decorate our office, we will mail you back a limited-edition HabitRPG postcard with a promo code for the Unconventional Armor set!
+ br
+ p Postcards should be sent to:
+ br
+ p The Habitica Team
+ p 202 Bicknell Avenue
+ p Santa Monica, California 90405
+ p United States of America
+ br
+ p We hope that this will be a fun way to send the Unconventional Armor set to those of our users who are unable to meet us in person. Can't wait to read your messages!
+ p.small.muted by Lemoness and Redphoenix
+ tr
+ td
+ h3 Info for Developers
+ p The developer blog has an update with important information about the API v2 deprecation. Check it out if you’re interested in developing integrations for Habitica!
+ p.small.muted by Blade and Matteo
+ h2 7/15/2016 - NEW IOS UPDATE AND STAFF SPOTLIGHT!
+ tr
+ td
+ h3 New iOS Update: Bug Fixes!
+ p We've released a new iOS update focusing on stability and bug fixes!
+ br
+ p It includes multiple crash fixes and clears up bugs such as the problems with rewards. Be sure to download it now for a better Habitica experience!
+ br
+ .promo_staff_spotlight_Lemoness.pull-right
+ p If you like the improvements that we’ve been making to our app, please consider reviewing this new version. It really helps us out! Old reviews get hidden with each update, but if you go to the review section you can re-post them again with a single tap. We hope you enjoy the update!
+ p.small.muted by viirus
+ tr
+ td
+ h3 Staff Spotlight: Lemoness!
+ p There's a new Staff Spotlight on the blog, featuring an interview with Leslie (aka Lemoness)! Check it out to learn about her favorite Habitica pets, her best tips for productivity, and more.
h2 7/12/2016 - NEW PET QUEST AND NEW AUDIO THEME
tr
td
diff --git a/website/views/static/api-v2.jade b/website/views/static/api-v2.jade
deleted file mode 100644
index c6e5c034f0..0000000000
--- a/website/views/static/api-v2.jade
+++ /dev/null
@@ -1,103 +0,0 @@
-doctype html
-html
- head
- title Swagger UI
- link(href='//fonts.googleapis.com/css?family=Droid+Sans:400,700', rel='stylesheet', type='text/css')
- link(href='/bower_components/swagger-ui/dist/css/reset.css', media='screen', rel='stylesheet', type='text/css')
- link(href='/bower_components/swagger-ui/dist/css/screen.css', media='screen', rel='stylesheet', type='text/css')
- link(href='/bower_components/swagger-ui/dist/css/reset.css', media='print', rel='stylesheet', type='text/css')
- link(href='/bower_components/swagger-ui/dist/css/screen.css', media='print', rel='stylesheet', type='text/css')
-
- script(src='/bower_components/swagger-ui/dist/lib/shred.bundle.js', type='text/javascript')
- script(src='/bower_components/swagger-ui/dist/lib/jquery-1.8.0.min.js', type='text/javascript')
- script(src='/bower_components/swagger-ui/dist/lib/jquery.slideto.min.js', type='text/javascript')
- script(src='/bower_components/swagger-ui/dist/lib/jquery.wiggle.min.js', type='text/javascript')
- script(src='/bower_components/swagger-ui/dist/lib/jquery.ba-bbq.min.js', type='text/javascript')
- script(src='/bower_components/swagger-ui/dist/lib/handlebars-1.0.0.js', type='text/javascript')
- script(src='/bower_components/swagger-ui/dist/lib/underscore-min.js', type='text/javascript')
- script(src='/bower_components/swagger-ui/dist/lib/backbone-min.js', type='text/javascript')
- script(src='/bower_components/swagger-ui/dist/lib/swagger.js', type='text/javascript')
- script(src='/bower_components/swagger-ui/dist/swagger-ui.js', type='text/javascript')
- script(src='/bower_components/swagger-ui/dist/lib/highlight.7.3.pack.js', type='text/javascript')
- script(type='text/javascript').
- $(function () {
- window.swaggerUi = new SwaggerUi({
- url: "/api/v2/api-docs",
- dom_id: "swagger-ui-container",
- supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
- onComplete: function(swaggerApi, swaggerUi){
- if(console) {
- console.log("Loaded SwaggerUI")
- }
- $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
- },
- onFailure: function(data) {
- if(console) {
- console.log("Unable to Load SwaggerUI");
- console.log(data);
- }
- },
- docExpansion: "none"
- });
-
- debugger;
-
- $('#input_apiKey').change(function() {
- var key = $('#input_apiKey')[0].value;
- console.log("apiKey: " + key);
- if(key && key.trim() != "") {
- console.log("added key " + key);
- window.authorizations.add("apiKey", new ApiKeyAuthorization("x-api-key", key, "header"));
- }
- })
- $('#input_uuid').change(function() {
- var key = $('#input_uuid')[0].value;
- console.log("uuid: " + key);
- if(key && key.trim() != "") {
- console.log("added key " + key);
- window.authorizations.add("uuid", new ApiKeyAuthorization("x-api-user", key, "header"));
- }
- })
- window.swaggerUi.load();
- });
- body.swagger-section
- #header
- .swagger-ui-wrap
- a#logo(href='http://swagger.wordnik.com') Habitica API Documentation
-
- .swagger-ui-wrap(style='padding:50px')
- form#api_selector
- .input
- input#input_uuid(placeholder='UUID', name='uuid', type='text')
- input#input_apiKey(placeholder='API Key', name='apiKey', type='password')
- //.input
- input#input_baseUrl(placeholder='http://example.com/api', name='baseUrl', type='text')
- //.input
- a#explore(href='#') Explore
- br
- h2 API v3
- p This page contains documentation for version 2 of Habitica's API. A new API version , the third, has been released and its documentation can be found here and an introductory blog post with the most important changes here .
- p API v2 is still available to give time to developers to port their apps and integration to the new API but it's considered deprecated and should not be used for new projects. It'll be completely retired shortly.
- br
- h2 Two API Types
- p Habitica's API is meant for two different audiences: (1) extensions and scripts, and (2) full-fledged applications. Extensions and scripts can utilize Habitica's up/down scoring for individual tasks. An example of this in action is the Chrome Extension , which up-scores you for visiting productive websites, and down-scores you for visiting procrastination websites. Other examples currently in use are Pomodoro, Anki, and Github scripts - which up-score you for good behavior and downscore you for bad behavior - see the list . The second API consumer is for full-fledge applications, which need read / write access to the entire user document. An example of this would be Mobile Apps or Desktop application.
- h2 Extensions / Scripts
- p Habitica has a simple API for up-scoring and down-scoring third party Habits: POST /api/v2/user/tasks/{id}/{direction} (headers x-api-user and x-api-key required).
- h4 Example
- p curl -X POST -H "x-api-key: YOUR_API_TOKEN" -H "x-api-user: YOUR_USER_ID" https://habitica.com/api/v2/user/tasks/productivity/up
- p Note: You may need to add --compressed -H "Content-Type:application/json" to your curl if you get errors.
- ul
- li POST to the URL /api/v2/user/tasks/{id}/{direction}
- ul
- li {direction} is 'up' or 'down'
- li {id} is a unique identifier for a Habit, which you make up, consisting of lowercase letters. Try to make it something common, like 'productivity' or 'fitness' - because other services may piggy-back off your Habit. For example, the Chrome extension down-scores a productivity Habit when you visit vice websites (reddit, 9gag, etc). However, Pomodoro up-scores productivity when you complete a Pomodoro task. So the two services share a single Habit to score your overall productivity. If the Habit doesn't yet exist, it is created the first time you POST to this URL.
- li apiToken (POST body) required
- p A more advanced version that allows modification of other types of tasks is available in the /user/tasks/{id}/{direction} route in the full API below.
- h2 Full API
- p All API requests should be prefaced by https://habitica.com. Every authenticated request should include two headers. Your api key (x-api-key) and your user id (x-api-user). Do not include {} braces in your header (-H 'x-api-user: a94b6d9d-6b64-43ae-856c-2c3f211bd426')
- h2 Requirements:
- p The base-url for all routes is /api/v2. So /user actions will be at https://habitica.com/api/v2/*. You need to send x-api-user and x-api-key headers for each request.
- p For create & edit paths (PUT & POST), you'll need to know the schema of the object you're trying to create or edit. See Schema definitions here
- p If any of the documentation is lacking or you're having trouble with it, please post an issue to Github
- #message-bar.swagger-ui-wrap
- #swagger-ui-container.swagger-ui-wrap
diff --git a/website/views/static/features.jade b/website/views/static/features.jade
index f3cf3f01f1..50beab9751 100644
--- a/website/views/static/features.jade
+++ b/website/views/static/features.jade
@@ -37,9 +37,8 @@ block content
a.gallery(href='/marketing/guild.png', title=env.t('marketing2Header'))
img.img-rendering-auto(src='/marketing/guild.png')
p.lead=env.t('marketing2Lead1')
-
- a.gallery(href='/common/img/sprites/spritesmith/quests/quest_vice3.png', title=env.t('marketing2Lead2Title'))
- img(src='/common/img/sprites/spritesmith/quests/quest_vice3.png')
+ a.gallery(href='/common/img/sprites/spritesmith/quests/bosses/quest_vice3.png', title=env.t('marketing2Lead2Title'))
+ img(src='/common/img/sprites/spritesmith/quests/bosses/quest_vice3.png')
p.lead!=env.t('marketing2Lead2')
.col-md-6
a.gallery(href='/marketing/challenge.png', title=env.t('challenges'))
diff --git a/website/views/static/front.jade b/website/views/static/front.jade
index 3a3a06f37f..9d93b79aa4 100644
--- a/website/views/static/front.jade
+++ b/website/views/static/front.jade
@@ -73,7 +73,9 @@ html(ng-app='habitrpg', ng-controller='RootCtrl')
li
a(href='/static/plans')=env.t('groupPlans')
li
- a(href='http://blog.habitrpg.com/')=env.t('companyBlog')
+ a(href='https://habitica.wordpress.com/')=env.t('companyBlog')
+ li
+ a(href='http://blog.habitrpg.com/')=env.t('tumblr')
li
a(href='/static/press-kit')=env.t('presskit')
li
diff --git a/website/views/static/layout.jade b/website/views/static/layout.jade
index e57f6c1dc9..0ac3404cfe 100644
--- a/website/views/static/layout.jade
+++ b/website/views/static/layout.jade
@@ -48,7 +48,7 @@ html(ng-app='habitrpg')
li(class='#{menuItem=="plans" ? "active" : ""}')
a(href='/static/plans')=env.t('groupPlans')
li
- a(href='http://blog.habitrpg.com/')=env.t('companyBlog')
+ a(href='https://habitica.wordpress.com/')=env.t('companyBlog')
li(class='#{menuItem=="pressKit" ? "active" : ""}')
a(href='/static/press-kit')=env.t('presskit')
li(class='#{menuItem=="contact" ? "active" : ""}')