Merge branch 'develop' into api-v3
@@ -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;
|
||||
|
||||
5948
common/dist/sprites/spritesmith-main-1.css
vendored
BIN
common/dist/sprites/spritesmith-main-1.png
vendored
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 60 KiB |
6596
common/dist/sprites/spritesmith-main-2.css
vendored
BIN
common/dist/sprites/spritesmith-main-2.png
vendored
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
3452
common/dist/sprites/spritesmith-main-3.css
vendored
BIN
common/dist/sprites/spritesmith-main-3.png
vendored
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 137 KiB |
622
common/dist/sprites/spritesmith-main-4.css
vendored
BIN
common/dist/sprites/spritesmith-main-4.png
vendored
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 130 KiB |
752
common/dist/sprites/spritesmith-main-5.css
vendored
BIN
common/dist/sprites/spritesmith-main-5.png
vendored
|
Before Width: | Height: | Size: 320 KiB After Width: | Height: | Size: 321 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
BIN
common/img/sprites/spritesmith/customize/chairs/chair_black.png
Normal file
|
After Width: | Height: | Size: 891 B |
@@ -34,6 +34,7 @@
|
||||
"beard": "Beard",
|
||||
"mustache": "Mustache",
|
||||
"flower": "Flower",
|
||||
"wheelchair": "Wheelchair",
|
||||
"basicSkins": "Basic Skins",
|
||||
"rainbowSkins": "Rainbow Skins",
|
||||
"pastelSkins": "Pastel Skins",
|
||||
|
||||
6
common/script/content/appearance/chair.js
Normal file
@@ -0,0 +1,6 @@
|
||||
import prefill from './prefill.js';
|
||||
|
||||
export default prefill({
|
||||
none: {},
|
||||
black: {},
|
||||
});
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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';
|
||||
}
|
||||
|
||||
|
||||
@@ -73,7 +73,6 @@ describe('shared.ops.buy', () => {
|
||||
|
||||
done();
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -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]];
|
||||
|
||||
@@ -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'}),
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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'},
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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'")
|
||||
|
||||
@@ -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, it’s 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. I’ve discovered a trick that will keep us reaping our just rewards, even as we continue to celebrate! Just you wait and see. I’m saving it as my grand finale!”
|
||||
br
|
||||
p Well, it probably won’t hurt to keep celebrating until April First. It’s 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, it’s 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. I’ve discovered a trick that will keep us reaping our just rewards, even as we continue to celebrate! Just you wait and see. I’m saving it as my grand finale!”
|
||||
br
|
||||
p Well, it probably won’t hurt to keep celebrating until April First. It’s 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
|
||||
|
||||