Merge branch 'develop' into Sinble-bug/slow_chat

This commit is contained in:
Blade Barringer
2016-06-03 17:24:52 -05:00
4925 changed files with 80656 additions and 39007 deletions

View File

@@ -1,4 +1,9 @@
{ {
"presets": ["es2015"], "presets": ["es2015"],
"plugins": ["syntax-async-functions","transform-regenerator"] "plugins": [
["transform-async-to-module-method", {
"module": "bluebird",
"method": "coroutine"
}]
]
} }

View File

@@ -1,3 +1,3 @@
{ {
"directory": "website/public/bower_components" "directory": "website/client/bower_components"
} }

View File

@@ -0,0 +1,7 @@
option_settings:
- namespace: aws:elasticbeanstalk:command
option_name: Timeout
value: 1800
- namespace: aws:elb:policies
option_name: ConnectionSettingIdleTimeout
value: 900

35
.eslintignore Normal file
View File

@@ -0,0 +1,35 @@
# Compiled and vendored files
common/dist/
common/transpiled-babel/
coverage/
database_reports/
website/build/
website/transpiled-babel/
migrations/*
# The files in website/client/js should be moved out and browserified
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/*
tasks/*.js
gulpfile.js
Gruntfile.js
newrelic.js
test/api-legacy/**/*
test/common/simulations/**/*
test/content/**/*
test/server_side/**/*
test/spec/**/*

129
.eslintrc
View File

@@ -1,124 +1,9 @@
{ {
"parser": "babel-eslint", "extends": [
"plugins": ["babel"], "habitrpg/server",
"rules": { "habitrpg/babel"
"indent": [2, 2, {"SwitchCase": 1}], ],
"quotes": [2, "single"], "globals": {
"linebreak-style": [2, "unix"], "Promise": true
"semi": [2, "always"], }
"no-extra-parens": 2,
"no-unexpected-multiline": 2,
"block-scoped-var": 2,
"dot-location": [2, "property"],
"dot-notation": 2,
"eqeqeq": 2,
"no-caller": 2,
"no-eval": 2,
"no-extend-native": 2,
"no-extra-bind": 2,
"no-fallthrough": 2,
"no-floating-decimal": 2,
"no-empty-pattern": 2,
"no-empty-label": 2,
"no-lone-blocks": 2,
"no-loop-func": 2,
"no-implicit-coercion": 2,
"no-implied-eval": 2,
"no-native-reassign": 2,
"no-new-func": 2,
"no-new-wrappers": 2,
"no-new": 2,
"no-octal-escape": 2,
"no-octal": 2,
"no-process-env": 2,
"no-proto": 2,
"yoda": 2,
"wrap-iife": 2,
"radix": 2,
"no-with": 2,
"no-void": 2,
"no-useless-concat": 2,
"no-unused-expressions": 2,
"no-throw-literal": 2,
"no-sequences": 2,
"no-self-compare": 2,
"no-return-assign": 2,
"no-redeclare": 2,
"strict": [0, "global"],
"no-delete-var": 2,
"no-label-var": 2,
"no-shadow-restricted-names": 2,
"no-shadow": [2, { "builtinGlobals": true }],
"no-undef-init": 2,
"no-undef": [2, { "typeof": true }],
"no-unused-vars": 2,
"no-use-before-define": 2,
"global-require": 2,
"handle-callback-err": [2, "^.*(e|E)rr"],
"no-path-concat": 2,
"arrow-spacing": 2,
"constructor-super": 2,
"no-arrow-condition": 2,
"no-class-assign": 2,
"no-const-assign": 2,
"no-dupe-class-members": 2,
"no-this-before-super": 2,
"no-var": 2,
"object-shorthand": 0,
"prefer-const": 0,
"prefer-spread": 2,
"prefer-template": 2,
"array-bracket-spacing": [2, "never"],
"brace-style": [2, "1tbs", { "allowSingleLine": false }],
"camelcase": 2,
"comma-spacing": 2,
"comma-style": [2, "last"],
"comma-dangle": [2, "always-multiline"],
"computed-property-spacing": [2, "never"],
"consistent-this": [0, "self"],
"func-names": 2,
"func-style": [2, "declaration", { "allowArrowFunctions": true }],
"block-spacing": [2, "always"],
"key-spacing": [2, {"beforeColon": false, "afterColon": true}],
"max-nested-callbacks": [2, 3],
"new-cap": 0,
"new-parens": 2,
"newline-after-var": 0,
"no-array-constructor": 2,
"no-continue": 2,
"no-lonely-if": 2,
"no-mixed-spaces-and-tabs": 2,
"no-trailing-spaces": 2,
"no-spaced-func": 2,
"no-new-object": 2,
"no-nested-ternary": 2,
"one-var": [2, "never"],
"operator-linebreak": [2, "after"],
"quote-props": [2, "as-needed"],
"semi-spacing": [2, {"before": false, "after": true}],
"space-after-keywords": 2,
"space-before-blocks": 2,
"space-before-function-paren": 2,
"space-before-keywords": 2,
"space-in-parens": [2, "never"],
"space-infix-ops": 2,
"space-return-throw-case": 2,
"space-unary-ops": 2,
"spaced-comment": [2, "always", { "exceptions": ["-"]}],
"padded-blocks": [2, "never"],
"no-multiple-empty-lines": [2, {"max": 2}],
"generator-star-spacing": 0,
"babel/new-cap": 2,
"babel/object-shorthand": 2,
"babel/no-await-in-loop": 2
},
"env": {
"es6": true,
"mocha": true,
"node": true
},
"ecmaFeatures" : {
"modules": true
},
"extends": "eslint:recommended"
} }

View File

@@ -1,10 +1,10 @@
[//]: # (Before logging this issue, look through common problems at https://github.com/HabitRPG/habitrpg/issue If you find your issue there, read at least the first post to see if there is a workaround for you.) [//]: # (Before logging this issue, look through common problems at https://github.com/HabitRPG/habitrpg/issues If you find your issue there, read at least the first post to see if there is a workaround for you)
[//]: # (Github is primarilly used for reporting bugs. If you have a feature request, use "Help > Request a Feature" so that the feature request can be vetted by the larger Habitica community.) [//]: # (Github is primarily used for reporting bugs. If you have a feature request, use "Help > Request a Feature" so that the feature request can be vetted by the larger Habitica community)
[//]: # (To report a bug in one of the mobile apps, please report it in the correct repository. Android: https://github.com/HabitRPG/habitrpg-android, iOS: https://github.com/HabitRPG/habitrpg-ios) [//]: # (To report a bug in one of the mobile apps, please report it in the correct repository. Android: https://github.com/HabitRPG/habitrpg-android, iOS: https://github.com/HabitRPG/habitrpg-ios)
[//]: # (For more guidelines see https://github.com/HabitRPG/habitrpg/issues/2760 for more info) [//]: # (For more guidelines see https://github.com/HabitRPG/habitrpg/issues/2760)
[//]: # (Fill out relevant information - UUID is found in Settings -> API) [//]: # (Fill out relevant information - UUID is found in Settings -> API)
General Info General Info
@@ -18,5 +18,5 @@ General Info
#### Console Errors #### Console Errors
[//]: # (Include any javscript console errors here) [//]: # (Include any JavaScript console errors here.)

11
.gitignore vendored
View File

@@ -1,6 +1,7 @@
.DS_Store .DS_Store
website/public/gen website/client/gen
website/public/common website/client/common
website/client/apidoc
website/transpiled-babel/ website/transpiled-babel/
common/transpiled-babel/ common/transpiled-babel/
node_modules node_modules
@@ -9,8 +10,8 @@ node_modules
config.json config.json
npm-debug.log* npm-debug.log*
lib lib
website/public/bower_components website/client/bower_components
website/public/new-stuff.html website/client/new-stuff.html
website/build website/build
newrelic_agent.log newrelic_agent.log
.bower-tmp .bower-tmp
@@ -24,7 +25,7 @@ src/*/*.map
src/*/*/*.map src/*/*/*.map
test/*.js test/*.js
test/*.map test/*.map
website/public/docs website/client/docs
*.sublime-workspace *.sublime-workspace
coverage coverage
coverage.html coverage.html

View File

@@ -2,7 +2,7 @@ node_modules/**
.bower-cache/** .bower-cache/**
.bower-tmp/** .bower-tmp/**
.bower-registry/** .bower-registry/**
website/public/** website/client/**
website/views/** website/views/**
website/build/** website/build/**
.git/** .git/**

View File

@@ -2,7 +2,7 @@ language: node_js
node_js: node_js:
- '4.3.1' - '4.3.1'
before_install: before_install:
- "npm install -g npm@2" - "npm install -g npm@3"
- "npm install -g gulp" - "npm install -g gulp"
- "sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10" - "sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10"
- "echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list" - "echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list"

View File

@@ -25,7 +25,7 @@ RUN apt-get clean
RUN rm -rf /var/lib/apt/lists/* RUN rm -rf /var/lib/apt/lists/*
# Install global packages # Install global packages
RUN npm install -g gulp grunt-cli bower RUN npm install -g gulp grunt-cli bower npm@3
# Clone Habitica repo and install dependencies # Clone Habitica repo and install dependencies
WORKDIR /habitrpg WORKDIR /habitrpg

View File

@@ -43,11 +43,11 @@ module.exports = function(grunt) {
options: { options: {
compress: false, // AFTER compress: false, // AFTER
'include css': true, 'include css': true,
paths: ['website/public'] paths: ['website/client']
}, },
files: { files: {
'website/build/app.css': ['website/public/css/index.styl'], 'website/build/app.css': ['website/client/css/index.styl'],
'website/build/static.css': ['website/public/css/static.styl'] 'website/build/static.css': ['website/client/css/static.styl']
} }
} }
}, },
@@ -55,13 +55,13 @@ module.exports = function(grunt) {
copy: { copy: {
build: { build: {
files: [ files: [
{expand: true, cwd: 'website/public/', src: 'favicon.ico', dest: 'website/build/'}, {expand: true, cwd: 'website/client/', src: 'favicon.ico', dest: 'website/build/'},
{expand: true, cwd: 'website/public/', src: 'favicon_192x192.png', dest: 'website/build/'}, {expand: true, cwd: 'website/client/', src: 'favicon_192x192.png', dest: 'website/build/'},
{expand: true, cwd: '', src: 'common/dist/sprites/spritesmith*.png', dest: 'website/build/'}, {expand: true, cwd: '', src: 'common/dist/sprites/spritesmith*.png', dest: 'website/build/'},
{expand: true, cwd: '', src: 'common/img/sprites/backer-only/*.gif', dest: 'website/build/'}, {expand: true, cwd: '', src: 'common/img/sprites/backer-only/*.gif', dest: 'website/build/'},
{expand: true, cwd: '', src: 'common/img/sprites/npc_ian.gif', dest: 'website/build/'}, {expand: true, cwd: '', src: 'common/img/sprites/npc_ian.gif', dest: 'website/build/'},
{expand: true, cwd: '', src: 'common/img/sprites/quest_*.gif', dest: 'website/build/'}, {expand: true, cwd: '', src: 'common/img/sprites/quest_*.gif', dest: 'website/build/'},
{expand: true, cwd: 'website/public/', src: 'bower_components/bootstrap/dist/fonts/*', dest: 'website/build/'} {expand: true, cwd: 'website/client/', src: 'bower_components/bootstrap/dist/fonts/*', dest: 'website/build/'}
] ]
} }
}, },
@@ -88,9 +88,9 @@ module.exports = function(grunt) {
} }
}); });
//Load build files from public/manifest.json //Load build files from client/manifest.json
grunt.registerTask('loadManifestFiles', 'Load all build files from public/manifest.json', function(){ grunt.registerTask('loadManifestFiles', 'Load all build files from client/manifest.json', function(){
var files = grunt.file.readJSON('./website/public/manifest.json'); var files = grunt.file.readJSON('./website/client/manifest.json');
var uglify = {}; var uglify = {};
var cssmin = {}; var cssmin = {};
@@ -101,7 +101,7 @@ module.exports = function(grunt) {
_.each(files[key].js, function(val){ _.each(files[key].js, function(val){
var path = "./"; var path = "./";
if( val.indexOf('common/') == -1) if( val.indexOf('common/') == -1)
path = './website/public/'; path = './website/client/';
js.push(path + val); js.push(path + val);
}); });
@@ -110,7 +110,7 @@ module.exports = function(grunt) {
_.each(files[key].css, function(val){ _.each(files[key].css, function(val){
var path = "./"; var path = "./";
if( val.indexOf('common/') == -1) { if( val.indexOf('common/') == -1) {
path = (val == 'app.css' || val == 'static.css') ? './website/build/' : './website/public/'; path = (val == 'app.css' || val == 'static.css') ? './website/build/' : './website/client/';
} }
css.push(path + val) css.push(path + val)
}); });
@@ -122,7 +122,7 @@ module.exports = function(grunt) {
grunt.config.set('cssmin.build.files', cssmin); grunt.config.set('cssmin.build.files', cssmin);
// Rewrite urls to relative path // Rewrite urls to relative path
grunt.config.set('cssmin.build.options', {'target': 'website/public/css/whatever-css.css'}); grunt.config.set('cssmin.build.options', {'target': 'website/client/css/whatever-css.css'});
}); });
// Register tasks. // Register tasks.
@@ -131,7 +131,7 @@ module.exports = function(grunt) {
grunt.registerTask('build:test', ['test:prepare:translations', 'build:dev']); grunt.registerTask('build:test', ['test:prepare:translations', 'build:dev']);
grunt.registerTask('test:prepare:translations', function() { grunt.registerTask('test:prepare:translations', function() {
var i18n = require('./website/src/libs/i18n'), var i18n = require('./website/server/libs/api-v3/i18n'),
fs = require('fs'); fs = require('fs');
fs.writeFileSync('test/spec/mocks/translations.js', fs.writeFileSync('test/spec/mocks/translations.js',
"if(!window.env) window.env = {};\n" + "if(!window.env) window.env = {};\n" +

View File

@@ -1 +1 @@
web: node ./website/transpiled-babel/server.js web: node ./website/transpiled-babel/index.js

View File

@@ -6,7 +6,7 @@ VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.provider "virtualbox" do |v| config.vm.provider "virtualbox" do |v|
v.memory = 768 v.memory = 4096
v.cpus = 1 v.cpus = 1
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"] v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
end end

8
apidoc.json Normal file
View File

@@ -0,0 +1,8 @@
{
"name": "Habitica V3 API Documentation",
"title": "Habitica",
"url": "https://habitica.com",
"template": {
"withCompare": false
}
}

View File

@@ -9,7 +9,7 @@
"ignore": [ "ignore": [
"**/.*", "**/.*",
"node_modules", "node_modules",
"public/bower_components", "website/client/bower_components",
"test", "test",
"tests" "tests"
], ],
@@ -37,11 +37,12 @@
"jquery-ui": "1.10.3", "jquery-ui": "1.10.3",
"jquery.cookie": "1.4.0", "jquery.cookie": "1.4.0",
"js-emoji": "snicker/js-emoji#f25d8a303f", "js-emoji": "snicker/js-emoji#f25d8a303f",
"marked": "0.2.9",
"ngInfiniteScroll": "1.0.0", "ngInfiniteScroll": "1.0.0",
"pnotify": "1.3.1", "pnotify": "1.3.1",
"sticky": "*", "sticky": "*",
"swagger-ui": "wordnik/swagger-ui#v2.0.24" "swagger-ui": "wordnik/swagger-ui#v2.0.24",
"smart-app-banner": "78ef9c0679723b25be1a0ae04f7b4aef7cbced4f",
"habitica-markdown": "^1.1.0"
}, },
"devDependencies": { "devDependencies": {
"angular-mocks": "1.3.9" "angular-mocks": "1.3.9"

4
common/.eslintrc Normal file
View File

@@ -0,0 +1,4 @@
{
"extends": "habitrpg/browser"
}

View File

@@ -1,3 +1,5 @@
require('babel-polyfill');
var shared = require('./script/index'); var shared = require('./script/index');
var _ = require('lodash'); var _ = require('lodash');
var moment = require('moment'); var moment = require('moment');

View File

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

View File

@@ -1,126 +1,150 @@
.2014_Fall_HealerPROMO2 { .2014_Fall_HealerPROMO2 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -927px -1203px; background-position: -1497px -1252px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.2014_Fall_Mage_PROMO9 { .2014_Fall_Mage_PROMO9 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -813px -295px; background-position: -1456px -735px;
width: 120px; width: 120px;
height: 90px; height: 90px;
} }
.2014_Fall_RoguePROMO3 { .2014_Fall_RoguePROMO3 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -813px -477px; background-position: -199px -1252px;
width: 105px; width: 105px;
height: 90px; height: 90px;
} }
.2014_Fall_Warrior_PROMO { .2014_Fall_Warrior_PROMO {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -381px -1203px; background-position: -951px -1252px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_android { .promo_android {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -955px -480px; background-position: 0px -1076px;
width: 175px; width: 175px;
height: 175px; height: 175px;
} }
.promo_backgrounds_armoire_201602 { .promo_backgrounds_armoire_201602 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -306px -220px; background-position: -1017px -103px;
width: 141px; width: 141px;
height: 294px; height: 294px;
} }
.promo_backgrounds_armoire_201603 { .promo_backgrounds_armoire_201603 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -813px 0px; background-position: -875px -103px;
width: 141px; width: 141px;
height: 294px; height: 294px;
} }
.promo_backgrounds_armoire_201604 { .promo_backgrounds_armoire_201604 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -452px 0px; background-position: -593px 0px;
width: 140px; width: 140px;
height: 441px; height: 441px;
} }
.promo_backgrounds_armoire_201605 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -734px 0px;
width: 140px;
height: 441px;
}
.promo_backgrounds_armoire_201606 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -452px 0px;
width: 140px;
height: 447px;
}
.promo_backtoschool { .promo_backtoschool {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1236px -148px; background-position: -1305px -735px;
width: 150px; width: 150px;
height: 150px; height: 150px;
} }
.promo_burnout { .promo_burnout {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -593px 0px; background-position: 0px -525px;
width: 219px; width: 219px;
height: 240px; height: 240px;
} }
.promo_chairs_glasses {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -306px -311px;
width: 51px;
height: 210px;
}
.promo_classes_fall_2014 { .promo_classes_fall_2014 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -326px -912px; background-position: -363px -862px;
width: 321px; width: 321px;
height: 100px; height: 100px;
} }
.promo_classes_fall_2015 { .promo_classes_fall_2015 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -430px -706px; background-position: -875px -712px;
width: 377px; width: 377px;
height: 99px; height: 99px;
} }
.promo_dilatoryDistress { .promo_dilatoryDistress {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -563px -1203px; background-position: -678px -1252px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_egg_mounts { .promo_egg_mounts {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -955px 0px; background-position: -875px -398px;
width: 280px; width: 280px;
height: 147px; height: 147px;
} }
.promo_enchanted_armoire { .promo_enchanted_armoire {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -271px -621px; background-position: -685px -862px;
width: 374px; width: 374px;
height: 76px; height: 76px;
} }
.promo_enchanted_armoire_201507 { .promo_enchanted_armoire_201507 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -578px -1112px; background-position: -1305px -1034px;
width: 217px; width: 217px;
height: 90px; height: 90px;
} }
.promo_enchanted_armoire_201508 { .promo_enchanted_armoire_201508 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -796px -1112px; background-position: -1122px -546px;
width: 180px; width: 180px;
height: 90px; height: 90px;
} }
.promo_enchanted_armoire_201509 { .promo_enchanted_armoire_201509 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -654px -1203px; background-position: -860px -1252px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_enchanted_armoire_201511 { .promo_enchanted_armoire_201511 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1236px -915px; background-position: -1456px -584px;
width: 122px; width: 122px;
height: 90px; height: 90px;
} }
.promo_enchanted_armoire_201601 { .promo_enchanted_armoire_201601 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1200px -1203px; background-position: -1224px -1252px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_floral_potions {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1159px -103px;
width: 105px;
height: 273px;
}
.promo_habitica { .promo_habitica {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -593px -241px; background-position: -176px -1076px;
width: 175px; width: 175px;
height: 175px; height: 175px;
} }
@@ -132,289 +156,301 @@
} }
.promo_haunted_hair { .promo_haunted_hair {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1236px -595px; background-position: -1462px -285px;
width: 100px; width: 100px;
height: 137px; height: 137px;
} }
.promo_item_notif { .promo_item_notif {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -955px -656px; background-position: -1305px -182px;
width: 249px; width: 249px;
height: 102px; height: 102px;
} }
.promo_mystery_201405 { .promo_mystery_201405 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1071px -1112px; background-position: -182px -1344px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_mystery_201406 { .promo_mystery_201406 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -813px -568px; background-position: -358px -417px;
width: 90px; width: 90px;
height: 96px; height: 96px;
} }
.promo_mystery_201407 { .promo_mystery_201407 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -904px -568px; background-position: -1253px -712px;
width: 42px; width: 42px;
height: 62px; height: 62px;
} }
.promo_mystery_201408 { .promo_mystery_201408 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -513px -442px; background-position: -1523px -1125px;
width: 60px; width: 60px;
height: 71px; height: 71px;
} }
.promo_mystery_201409 { .promo_mystery_201409 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -745px -1203px; background-position: -1042px -1252px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_mystery_201410 { .promo_mystery_201410 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1131px -586px; background-position: -1156px -474px;
width: 72px; width: 72px;
height: 63px; height: 63px;
} }
.promo_mystery_201411 { .promo_mystery_201411 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1109px -1203px; background-position: -1406px -1252px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_mystery_201412 { .promo_mystery_201412 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1342px -809px; background-position: -1226px -637px;
width: 42px; width: 42px;
height: 66px; height: 66px;
} }
.promo_mystery_201501 { .promo_mystery_201501 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1337px -595px; background-position: -1229px -474px;
width: 48px; width: 48px;
height: 63px; height: 63px;
} }
.promo_mystery_201502 { .promo_mystery_201502 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -199px -1203px; background-position: -364px -1344px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_mystery_201503 { .promo_mystery_201503 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -290px -1203px; background-position: -587px -1252px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_mystery_201504 { .promo_mystery_201504 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -646px -621px; background-position: -1122px -637px;
width: 60px; width: 60px;
height: 69px; height: 69px;
} }
.promo_mystery_201505 { .promo_mystery_201505 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -472px -1203px; background-position: -769px -1252px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_mystery_201506 { .promo_mystery_201506 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1337px -659px; background-position: -1183px -637px;
width: 42px; width: 42px;
height: 69px; height: 69px;
} }
.promo_mystery_201507 { .promo_mystery_201507 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1131px -480px; background-position: -358px -311px;
width: 90px; width: 90px;
height: 105px; height: 105px;
} }
.promo_mystery_201508 { .promo_mystery_201508 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -977px -1112px; background-position: -399px -1252px;
width: 93px; width: 93px;
height: 90px; height: 90px;
} }
.promo_mystery_201509 { .promo_mystery_201509 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -836px -1203px; background-position: -1133px -1252px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_mystery_201510 { .promo_mystery_201510 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -813px -665px; background-position: -493px -1252px;
width: 93px; width: 93px;
height: 90px; height: 90px;
} }
.promo_mystery_201511 { .promo_mystery_201511 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1018px -1203px; background-position: -1315px -1252px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_mystery_201512 { .promo_mystery_201512 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -452px -442px; background-position: -1523px -1034px;
width: 60px; width: 60px;
height: 81px; height: 81px;
} }
.promo_mystery_201601 { .promo_mystery_201601 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1236px -1082px; background-position: -306px -220px;
width: 120px; width: 120px;
height: 90px; height: 90px;
} }
.promo_mystery_201602 { .promo_mystery_201602 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1291px -1203px; background-position: 0px -1344px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_mystery_201603 { .promo_mystery_201603 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -1295px; background-position: -91px -1344px;
width: 90px;
height: 90px;
}
.promo_mystery_201604 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -305px -1252px;
width: 93px;
height: 90px;
}
.promo_mystery_201605 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -273px -1344px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.promo_mystery_3014 { .promo_mystery_3014 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -593px -417px; background-position: -1305px -1125px;
width: 217px; width: 217px;
height: 90px; height: 90px;
} }
.promo_orca { .promo_orca {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1236px -809px; background-position: -1456px -433px;
width: 105px; width: 105px;
height: 105px; height: 105px;
} }
.promo_partyhats { .promo_partyhats {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -955px -759px; background-position: -1456px -675px;
width: 115px; width: 115px;
height: 47px; height: 47px;
} }
.promo_pastel_skin { .promo_pastel_skin {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -724px -809px; background-position: -657px -965px;
width: 330px; width: 330px;
height: 83px; height: 83px;
} }
.customize-option.promo_pastel_skin { .customize-option.promo_pastel_skin {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -749px -824px; background-position: -682px -980px;
width: 60px; width: 60px;
height: 60px; height: 60px;
} }
.promo_peppermint_flame { .promo_peppermint_flame {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1236px -447px; background-position: -1305px -886px;
width: 140px; width: 140px;
height: 147px; height: 147px;
} }
.promo_pet_skins { .promo_pet_skins {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1236px -299px; background-position: -1446px -886px;
width: 140px; width: 140px;
height: 147px; height: 147px;
} }
.customize-option.promo_pet_skins { .customize-option.promo_pet_skins {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1261px -314px; background-position: -1471px -901px;
width: 60px; width: 60px;
height: 60px; height: 60px;
} }
.promo_shimmer_hair { .promo_shimmer_hair {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -648px -912px; background-position: -326px -965px;
width: 330px; width: 330px;
height: 83px; height: 83px;
} }
.promo_splashyskins { .promo_splashyskins {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -1203px; background-position: 0px -1252px;
width: 198px; width: 198px;
height: 91px; height: 91px;
} }
.customize-option.promo_splashyskins { .customize-option.promo_splashyskins {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -25px -1218px; background-position: -25px -1267px;
width: 60px; width: 60px;
height: 60px; height: 60px;
} }
.promo_spring_classes_2016 { .promo_spring_classes_2016 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -809px; background-position: 0px -862px;
width: 362px; width: 362px;
height: 102px; height: 102px;
} }
.promo_springclasses2014 { .promo_springclasses2014 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -289px -1112px; background-position: -1305px -91px;
width: 288px; width: 288px;
height: 90px; height: 90px;
} }
.promo_springclasses2015 { .promo_springclasses2015 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -1112px; background-position: -1305px 0px;
width: 288px; width: 288px;
height: 90px; height: 90px;
} }
.promo_summer_classes_2014 { .promo_summer_classes_2014 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -706px; background-position: -875px 0px;
width: 429px; width: 429px;
height: 102px; height: 102px;
} }
.promo_summer_classes_2015 { .promo_summer_classes_2015 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -1023px; background-position: -352px -1076px;
width: 300px; width: 300px;
height: 88px; height: 88px;
} }
.promo_updos { .promo_updos {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1236px 0px; background-position: -1305px -285px;
width: 156px; width: 156px;
height: 147px; height: 147px;
} }
.promo_veteran_pets { .promo_veteran_pets {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1236px -1006px; background-position: -1156px -398px;
width: 146px; width: 146px;
height: 75px; height: 75px;
} }
.promo_winter_classes_2016 { .promo_winter_classes_2016 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -363px -809px; background-position: -499px -766px;
width: 360px; width: 360px;
height: 90px; height: 90px;
} }
.promo_winterclasses2015 { .promo_winterclasses2015 {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -912px; background-position: 0px -965px;
width: 325px; width: 325px;
height: 110px; height: 110px;
} }
.promo_winteryhair { .promo_winteryhair {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -1236px -733px; background-position: -1060px -862px;
width: 152px; width: 152px;
height: 75px; height: 75px;
} }
.avatar_variety { .avatar_variety {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -271px -525px; background-position: 0px -766px;
width: 498px; width: 498px;
height: 95px; height: 95px;
} }
.npc_viirus { .npc_viirus {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -813px -386px; background-position: -738px -525px;
width: 108px; width: 108px;
height: 90px; height: 90px;
} }
@@ -424,21 +460,33 @@
width: 451px; width: 451px;
height: 219px; height: 219px;
} }
.scene_coding {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1305px -433px;
width: 150px;
height: 150px;
}
.scene_phone_peek {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1305px -584px;
width: 150px;
height: 150px;
}
.welcome_basic_avatars { .welcome_basic_avatars {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -955px -148px; background-position: -875px -546px;
width: 246px; width: 246px;
height: 165px; height: 165px;
} }
.welcome_promo_party { .welcome_promo_party {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -525px; background-position: -220px -525px;
width: 270px; width: 270px;
height: 180px; height: 180px;
} }
.welcome_sample_tasks { .welcome_sample_tasks {
background-image: url(spritesmith-largeSprites-0.png); background-image: url(spritesmith-largeSprites-0.png);
background-position: -955px -314px; background-position: -491px -525px;
width: 246px; width: 246px;
height: 165px; height: 165px;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 339 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 302 KiB

After

Width:  |  Height:  |  Size: 332 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 66 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 143 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 151 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 134 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 132 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 136 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 KiB

After

Width:  |  Height:  |  Size: 190 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 KiB

After

Width:  |  Height:  |  Size: 363 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 150 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 145 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Some files were not shown because too many files have changed in this diff Show More