Merge branch 'develop' into api-v3

This commit is contained in:
Matteo Pagliazzi
2016-03-30 23:40:00 +02:00
26 changed files with 8755 additions and 8720 deletions

View File

@@ -130,12 +130,6 @@
width: 100px;
height: 137px;
}
.customize-option.promo_haunted_hair {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1372px -209px;
width: 60px;
height: 60px;
}
.promo_item_notif {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1190px -91px;
@@ -334,12 +328,6 @@
width: 330px;
height: 83px;
}
.customize-option.promo_shimmer_hair {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -356px -998px;
width: 60px;
height: 60px;
}
.promo_splashyskins {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1190px -823px;
@@ -412,12 +400,6 @@
width: 152px;
height: 75px;
}
.customize-option.promo_winteryhair {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1215px -1021px;
width: 60px;
height: 60px;
}
.avatar_variety {
background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -525px;

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 60 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: 136 KiB

After

Width:  |  Height:  |  Size: 137 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 130 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 320 KiB

After

Width:  |  Height:  |  Size: 321 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 B

View File

@@ -34,6 +34,7 @@
"beard": "Beard",
"mustache": "Mustache",
"flower": "Flower",
"wheelchair": "Wheelchair",
"basicSkins": "Basic Skins",
"rainbowSkins": "Rainbow Skins",
"pastelSkins": "Pastel Skins",

View File

@@ -0,0 +1,6 @@
import prefill from './prefill.js';
export default prefill({
none: {},
black: {},
});

View File

@@ -3,6 +3,7 @@ import shirts from './shirt.js';
import skins from './skin.js';
import sizes from './size.js';
import backgrounds from './backgrounds.js';
import chairs from './chair.js';
import {forOwn, clone} from 'lodash';
let reorderedBgs = {};
@@ -25,6 +26,7 @@ let appearances = {
shirt: shirts,
size: sizes,
skin: skins,
chair: chairs,
background: reorderedBgs,
};

View File

@@ -36,6 +36,9 @@ module.exports = function(user, options) {
}
user.auth.timestamps.loggedin = new Date();
user.lastCron = now;
if (_.isFinite(+user.preferences.timezoneOffset)) {
user.preferences.timezoneOffsetAtLastCron = user.preferences.timezoneOffset;
}
if (user.items.lastDrop.count > 0) {
user.items.lastDrop.count = 0;
}

View File

@@ -127,7 +127,7 @@ function calculateImgDimensions(img, addPadding) {
}
function checkForSpecialTreatment(name) {
let regex = /hair|skin|beard|mustach|shirt|flower|^headAccessory_special_\w+Ears/;
let regex = /^hair|skin|beard|mustach|shirt|flower|^headAccessory_special_\w+Ears/;
return name.match(regex) || name === 'head_0';
}

View File

@@ -73,7 +73,6 @@ describe('shared.ops.buy', () => {
done();
}
});
});

View File

@@ -54,6 +54,7 @@ let beforeAfter = (options = {}) => {
before.preferences.dayStart = after.preferences.dayStart = options.dayStart;
}
before.preferences.timezoneOffset = after.preferences.timezoneOffset = options.timezoneOffset || moment().zone();
before.preferences.timezoneOffsetAtLastCron = after.preferences.timezoneOffsetAtLastCron = before.preferences.timezoneOffset;
if (options.limitOne) {
before[`${options.limitOne}s`] = [before[`${options.limitOne}s`][0]];
after[`${options.limitOne}s`] = [after[`${options.limitOne}s`][0]];

View File

@@ -149,7 +149,7 @@ describe('Challenges Controller', function() {
expect(scope.filterChallenges(notOwnNotMem)).to.eql(true);
});
it('it filters challenges to a single group when group id filter is set', inject(function($controller) {
it('filters challenges to a single group when group id filter is set', inject(function($controller) {
scope.search = { };
scope.groups = {
0: specHelper.newGroup({_id: 'group-one'}),

View File

@@ -308,6 +308,7 @@ let requiresPurchase = {
'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',

View File

@@ -400,6 +400,8 @@ export let schema = new Schema({
shirt: {type: String, default: 'blue'},
timezoneOffset: Number,
sound: {type: String, default: 'off', enum: ['off', 'danielTheBard', 'gokulTheme', 'luneFoxTheme', 'wattsTheme']},
chair: {type: String, default: 'none'},
timezoneOffsetAtLastCron: Number,
language: String,
automaticAllocation: Boolean,
allocationMode: {type: String, enum: ['flat', 'classbased', 'taskbased'], default: 'flat'},

View File

@@ -68,6 +68,13 @@ mixin customizeProfile(mobile)
popover-placement='right', popover-append-to-body='true',
ng-click='user.items.gear.owned[item.key] ? equip(item.key) : purchase(item.type,item)')
// Wheelchair
li.customize-menu
menu(label=env.t('wheelchair'))
button.customize-option(ng-repeat='item in ::["black"]', class='button_chair_{{::item}}',
ng-class="{selectableInventory: user.preferences.chair == item}",
ng-click='user.preferences.chair != item ? set({"preferences.chair":item}) : set({"preferences.chair":"none"})')
.col-md-4
h3(class=mobile?'item item-divider':'')=env.t('bodyHead')
menu(type='list')

View File

@@ -6,6 +6,7 @@ mixin costumeSetting(type, options)
mixin generatedAvatar(options)
- options = options || {}
span(class='chair_{{profile.preferences.chair}}')
+costumeSetting('back')
if options.sleep
span(ng-class="'skin_' + profile.preferences.skin + '_sleep'")

View File

@@ -1,5 +1,29 @@
h2 3/24/2016 - MARCH SUBSCRIBER ITEMS, SPRING AVATAR CUSTOMIZATIONS, ANDROID UPDATE, AND SPRING PLOT-LINE CONTINUES!
h2 3/30/2016 - LAST CHANCE FOR MARCH SUBSCRIBER ITEMS! ALSO, EQUIPMENT SORTING AND WHEELCHAIRS FOR AVATARS
hr
tr
td
.promo_mystery_201603.pull-right
h3 Last Chance for March Subscriber Items
p Reminder: this is the final day to <a href='/#/options/settings/subscription'>subscribe</a> and receive the Lucky Set! If you want the Lucky Suit or the Lucky Hat, now's the time! Thanks so much for your support -- we really do appreciate it.
p.small.muted by Lemoness
tr
td
h3 Equipment Sorting
p Now you can sort your <a href='/#/options/inventory/equipment'>equipment</a> on the website by set or by stat, so that you can choose the best pieces to wear. Enjoy the added organization!
p.small.muted by qrry and Blade
tr
td
.chair_black.pull-right
h3 Wheelchairs for Avatars
p There is a new free <a href='/#/options/profile/avatar'>avatar customization</a> option on the website: a wheelchair! We hope that our wheelchair-using Habiticans will appreciate this avatar option.
p.small.muted by Balduranne, Sinble, and Blade
if menuItem !== 'oldNews'
hr
a(href='/static/old-news', target='_blank') Read older news
mixin oldNews
h2 3/24/2016 - MARCH SUBSCRIBER ITEMS, SPRING AVATAR CUSTOMIZATIONS, ANDROID UPDATE, AND SPRING PLOT-LINE CONTINUES!
tr
td
.promo_mystery_201603.pull-right
@@ -27,12 +51,6 @@ h2 3/24/2016 - MARCH SUBSCRIBER ITEMS, SPRING AVATAR CUSTOMIZATIONS, ANDROID UPD
br
p Well, it probably wont hurt to keep celebrating until April First. Its only one day, after all...
p.small.muted by Lemoness
if menuItem !== 'oldNews'
hr
a(href='/static/old-news', target='_blank') Read older news
mixin oldNews
h2 3/18/2016 - SPRING FLING BEGINS! LIMITED EDITION EQUIPMENT, SEASONAL SHOP OPENS, AND SPRING MYSTERY PLOT CONTINUES
tr
td