feat(event): Habitica Thanksgiving

This commit is contained in:
Sabe Jones
2015-11-25 17:06:52 -05:00
parent 9671f4a09d
commit 29a84e6666
28 changed files with 3250 additions and 3095 deletions

View File

@@ -1,6 +1,6 @@
.2014_Fall_HealerPROMO2 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -731px -995px;
background-position: -822px -995px;
width: 90px;
height: 90px;
}
@@ -18,7 +18,7 @@
}
.2014_Fall_Warrior_PROMO {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1095px -995px;
background-position: -276px -995px;
width: 90px;
height: 90px;
}
@@ -48,7 +48,7 @@
}
.promo_dilatoryDistress {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -367px -995px;
background-position: -458px -995px;
width: 90px;
height: 90px;
}
@@ -72,7 +72,7 @@
}
.promo_enchanted_armoire_201509 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -458px -995px;
background-position: -549px -995px;
width: 90px;
height: 90px;
}
@@ -114,7 +114,7 @@
}
.promo_mystery_201405 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1004px -995px;
background-position: -1095px -995px;
width: 90px;
height: 90px;
}
@@ -138,7 +138,7 @@
}
.promo_mystery_201409 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -640px -995px;
background-position: -731px -995px;
width: 90px;
height: 90px;
}
@@ -150,7 +150,7 @@
}
.promo_mystery_201411 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -822px -995px;
background-position: -913px -995px;
width: 90px;
height: 90px;
}
@@ -168,13 +168,13 @@
}
.promo_mystery_201502 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -276px -995px;
background-position: -367px -995px;
width: 90px;
height: 90px;
}
.promo_mystery_201503 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -1101px;
background-position: -91px -1101px;
width: 90px;
height: 90px;
}
@@ -186,7 +186,7 @@
}
.promo_mystery_201505 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -549px -995px;
background-position: -640px -995px;
width: 90px;
height: 90px;
}
@@ -210,7 +210,7 @@
}
.promo_mystery_201509 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -913px -995px;
background-position: -1004px -995px;
width: 90px;
height: 90px;
}
@@ -220,6 +220,12 @@
width: 93px;
height: 90px;
}
.promo_mystery_201511 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -1101px;
width: 90px;
height: 90px;
}
.promo_mystery_3014 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -943px -764px;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

After

Width:  |  Height:  |  Size: 194 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 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: 396 KiB

After

Width:  |  Height:  |  Size: 387 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 153 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 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: 143 KiB

After

Width:  |  Height:  |  Size: 142 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: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -342,6 +342,8 @@
"armorMystery201508Notes": "Run fast as a flash in the fluffy Cheetah Costume! Confers no benefit. August 2015 Subscriber Item.",
"armorMystery201509Text": "Werewolf Costume",
"armorMystery201509Notes": "This IS a costume, right? Confers no benefit. September 2015 Subscriber Item.",
"armorMystery201511Text": "Wooden Armor",
"armorMystery201511Notes": "Considering this armor was carved directly from a magical log, it's surprisingly comfortable. Confers no benefit. November 2015 Subscriber Item.",
"armorMystery301404Text": "Steampunk Suit",
"armorMystery301404Notes": "Dapper and dashing, wot! Confers no benefit. February 3015 Subscriber Item.",
@@ -521,6 +523,8 @@
"headMystery201508Notes": "This cozy cheetah hat is very fuzzy! Confers no benefit. August 2015 Subscriber Item.",
"headMystery201509Text": "Werewolf Mask",
"headMystery201509Notes": "This IS a mask, right? Confers no benefit. September 2015 Subscriber Item.",
"headMystery201511Text": "Log Crown",
"headMystery201511Notes": "Count the number of rings to learn how old this crown is. Confers no benefit. November 2015 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",

View File

@@ -21,6 +21,7 @@
"valentineCardAchievementText": "Aww, you and your friend must really care about each other! Sent or received <%= cards %> Valentine's Day cards.",
"polarBear": "Polar Bear",
"turkey": "Turkey",
"gildedTurkey": "Gilded Turkey",
"polarBearPup": "Polar Bear Cub",
"jackolantern": "Jack-O-Lantern",
"seasonalShop": "Seasonal Shop",

View File

@@ -91,6 +91,12 @@ let armor = {
mystery: '201509',
value: 0,
},
201511: {
text: t('armorMystery201511Text'),
notes: t('armorMystery201511Notes'),
mystery: '201511',
value: 0,
},
301404: {
text: t('armorMystery301404Text'),
notes: t('armorMystery301404Notes'),
@@ -238,6 +244,12 @@ let head = {
mystery: '201509',
value: 0,
},
201511: {
text: t('headMystery201511Text'),
notes: t('headMystery201511Notes'),
mystery: '201511',
value: 0,
},
301404: {
text: t('headMystery301404Text'),
notes: t('headMystery301404Notes'),

View File

@@ -952,7 +952,8 @@ api.specialPets = {
'JackOLantern-Base': 'jackolantern',
'Mammoth-Base': 'mammoth',
'Tiger-Veteran': 'veteranTiger',
'Phoenix-Base': 'phoenix'
'Phoenix-Base': 'phoenix',
'Turkey-Gilded': 'gildedTurkey',
};
api.specialMounts = {

View File

@@ -106,6 +106,11 @@ let mysterySets = {
end: '2015-11-02',
text: 'Horned Goblin Set',
},
201511: {
start: '2015-11-25',
end: '2015-12-02',
text: 'Wood Warrior Set',
},
301404: {
start: '3014-03-24',
end: '3014-04-02',

View File

@@ -0,0 +1,71 @@
var migrationName = '20151125_turkey_ladder.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 Gilded Turkey pet to Turkey mount owners, Turkey Mount if they only have Turkey Pet,
* and Turkey Pet otherwise
*/
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');
// specify a query to limit the affected users (empty for all users):
var query = {
};
// specify fields we are interested in to limit retrieved data (empty if we're not reading data):
var fields = {
'items.pets.Turkey-Base': 1,
'items.mounts.Turkey-Base': 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.');
return displayData();
}
count++;
// specify user data to change:
var set = {};
if (user.items.mounts['Turkey-Base']) {
set = {'migration':migrationName, 'items.pets.Turkey-Gilded':5};
} else if (user.items.pets['Turkey-Base']) {
set = {'migration':migrationName, 'items.mounts.Turkey-Base':true};
} else {
set = {'migration':migrationName, 'items.pets.Turkey-Base':5};
}
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);
}

View File

@@ -2,7 +2,7 @@ var _id = '';
var update = {
$addToSet: {
'purchased.plan.mysteryItems':{
$each:['headAccessory_mystery_201510','back_mystery_201510']
$each:['head_mystery_201511','armor_mystery_201511']
}
}
};

View File

@@ -1,26 +1,45 @@
h2 11/19/2015 - SMALL iOS UPDATE AND HABITICA HIRING NEWS!
h2 11/25/2015 - HABITICA THANKSGIVING! NOVEMBER SUBSCRIBER ITEM AND TURKEY PETS AND MOUNTS
hr
tr
td
h3 Habitica Hiring News
p Exciting news! Right now, Habitica is looking to add a senior full stack developer to our team, and what better place to look than our awesome community?
br
p If youd like to apply, you should have experience as a lead developer, and be a JavaScript whiz who is familiar with MongoDB and Angular. Bonus points for familiarity with <a href='http://habitica.wikia.com/wiki/Guidance_for_Blacksmiths#Technology_Stack' target='_blank'>our tech stack</a>! Passion for open source is, naturally, a must ;)
br
p Send your resume to <a href='mailto:jobs@habitica.com'>jobs@habitica.com</a> with your GitHub handle, Habitica username, and list of favorite online hangouts! Please also let us know whether or not you would be able to move to Los Angeles. Were looking forward to hearing from you!
.npc_daniel.pull-right
h3 Happy Thanksgiving!
p It's Thanksgiving in Habitica! On this day Habiticans celebrate by spending time with loved ones, giving thanks, and riding their glorious turkeys into the magnificent sunset. Some of the NPCs are celebrating the occasion!
tr
td
h3 Small iOS App Update
p We've released a small <a href='https://itunes.apple.com/us/app/habitica/id994882113?ls=1&mt=8' target='_blank'>iOS update</a>, just to fix some bothersome bugs (including crashes), add a nice intro slide for new users, and make it more obvious how to invite your friends to your party.
.Pet-Turkey-Gilded.pull-right
h3 Turkey Pet and Mount!
p Those of you who weren't around last Thanksgiving have received an adorable Turkey Pet, and those of you who got a Turkey Pet last year have received a handsome Turkey Mount! Already got a Turkey Mount? You, my friend, have been gifted the rare and glittering Gilded Turkey Pet!
br
p If you already reviewed the last version of the app, Apple has hidden it for this version, but you can automatically post the same review again by tapping “Write a review” and then just hitting "Send." Thank you very much for taking the time to share your thoughts with us! Posting and reposting reviews really helps us out.
p.small.muted by Viirus and Lemoness
p Thank you for using Habitica - we really love you guys <3
tr
td
.promo_mystery_201511.pull-right
h3 November Subscriber Items Revealed
p The November Subscriber Item Set has been revealed: the Wood Warrior Set! All November subscribers will receive the Log Crown and the Wooden Armor. 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
if menuItem !== 'oldNews'
hr
a(href='/static/old-news', target='_blank') Read older news
mixin oldNews
h2 11/19/2015 - SMALL iOS UPDATE AND HABITICA HIRING NEWS!
tr
td
h3 Habitica Hiring News
p Exciting news! Right now, Habitica is looking to add a senior full stack developer to our team, and what better place to look than our awesome community?
br
p If youd like to apply, you should have experience as a lead developer, and be a JavaScript whiz who is familiar with MongoDB and Angular. Bonus points for familiarity with <a href='http://habitica.wikia.com/wiki/Guidance_for_Blacksmiths#Technology_Stack' target='_blank'>our tech stack</a>! Passion for open source is, naturally, a must ;)
br
p Send your resume to <a href='mailto:jobs@habitica.com'>jobs@habitica.com</a> with your GitHub handle, Habitica username, and list of favorite online hangouts! Please also let us know whether or not you would be able to move to Los Angeles. Were looking forward to hearing from you!
tr
td
h3 Small iOS App Update
p We've released a small <a href='https://itunes.apple.com/us/app/habitica/id994882113?ls=1&mt=8' target='_blank'>iOS update</a>, just to fix some bothersome bugs (including crashes), add a nice intro slide for new users, and make it more obvious how to invite your friends to your party.
br
p If you already reviewed the last version of the app, Apple has hidden it for this version, but you can automatically post the same review again by tapping “Write a review” and then just hitting "Send." Thank you very much for taking the time to share your thoughts with us! Posting and reposting reviews really helps us out.
p.small.muted by Viirus and Lemoness
h2 11/16/2015 - HABITICA STICKERS AND COSTUME CONTEST BADGES!
tr
td