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,38 +1,56 @@
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 March Subscriber Items
p The March Subscriber Items have been revealed: the Lucky Clover Item Set! All March subscribers will receive the Lucky Hat and the Lucky Suit. You still have five days to <a href='/#/options/settings/subscription'>subscribe</a> and receive the item set! Thank you so much for your support - we really do rely on you to keep Habitica free to use and running smoothly.
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
.promo_shimmer_hair.pull-right
h3 Shimmer Hair Colors and Pastel Skin Set
p The Seasonal Edition Shimmer Hair Colors and Pastel Skin Set are now available for purchase in the <a href='/#/options/profile/avatar'>avatar customizations page</a>! These skin sets will only be available to purchase until April 30th, and then they will disappear from the shop until next Spring Fling. If you buy them, though, you will have access to them year-round!
p.small.muted by Lemoness and McCoyly
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
.promo_pastel_skin.pull-right
h3 Android Update
p In case you missed it, this weekend we released a follow-up update to the <a href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica' target='_blank'>Android app</a> with plenty of bug fixes. Be sure to download it now if you haven't already!
p.small.muted by Viirus
tr
td
h3 Spring Plot-Line Continues
p Since the April Fool came to town, there have been non-stop parties, pranks, and parades! The only problem is, with the constant celebrations, its getting a teensy bit difficult to, well… accomplish any work whatsoever.
br
p Some concerned citizens broach the issue with the April Fool, but he just chortles and raises his voice to be heard over the trombones. “Oho! Nothing to fear. Ive discovered a trick that will keep us reaping our just rewards, even as we continue to celebrate! Just you wait and see. Im saving it as my grand finale!”
br
p Well, it probably wont hurt to keep celebrating until April First. Its only one day, after all...
p.small.muted by Lemoness
.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
h3 March Subscriber Items
p The March Subscriber Items have been revealed: the Lucky Clover Item Set! All March subscribers will receive the Lucky Hat and the Lucky Suit. You still have five days to <a href='/#/options/settings/subscription'>subscribe</a> and receive the item set! Thank you so much for your support - we really do rely on you to keep Habitica free to use and running smoothly.
p.small.muted by Lemoness
tr
td
.promo_shimmer_hair.pull-right
h3 Shimmer Hair Colors and Pastel Skin Set
p The Seasonal Edition Shimmer Hair Colors and Pastel Skin Set are now available for purchase in the <a href='/#/options/profile/avatar'>avatar customizations page</a>! These skin sets will only be available to purchase until April 30th, and then they will disappear from the shop until next Spring Fling. If you buy them, though, you will have access to them year-round!
p.small.muted by Lemoness and McCoyly
tr
td
.promo_pastel_skin.pull-right
h3 Android Update
p In case you missed it, this weekend we released a follow-up update to the <a href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica' target='_blank'>Android app</a> with plenty of bug fixes. Be sure to download it now if you haven't already!
p.small.muted by Viirus
tr
td
h3 Spring Plot-Line Continues
p Since the April Fool came to town, there have been non-stop parties, pranks, and parades! The only problem is, with the constant celebrations, its getting a teensy bit difficult to, well… accomplish any work whatsoever.
br
p Some concerned citizens broach the issue with the April Fool, but he just chortles and raises his voice to be heard over the trombones. “Oho! Nothing to fear. Ive discovered a trick that will keep us reaping our just rewards, even as we continue to celebrate! Just you wait and see. Im saving it as my grand finale!”
br
p Well, it probably wont hurt to keep celebrating until April First. Its only one day, after all...
p.small.muted by Lemoness
h2 3/18/2016 - SPRING FLING BEGINS! LIMITED EDITION EQUIPMENT, SEASONAL SHOP OPENS, AND SPRING MYSTERY PLOT CONTINUES
tr
td