feat(event): Jack-O'-Lantern mounts
2
common/dist/sprites/habitrpg-shared.css
vendored
496
common/dist/sprites/spritesmith-main-6.css
vendored
BIN
common/dist/sprites/spritesmith-main-6.png
vendored
|
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 156 KiB |
490
common/dist/sprites/spritesmith-main-7.css
vendored
BIN
common/dist/sprites/spritesmith-main-7.png
vendored
|
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 144 KiB |
1140
common/dist/sprites/spritesmith-main-8.css
vendored
BIN
common/dist/sprites/spritesmith-main-8.png
vendored
|
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
1276
common/dist/sprites/spritesmith-main-9.css
vendored
BIN
common/dist/sprites/spritesmith-main-9.png
vendored
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 85 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
@@ -1154,6 +1154,7 @@ api.specialMounts =
|
|||||||
'Orca-Base': 'orca'
|
'Orca-Base': 'orca'
|
||||||
'Gryphon-RoyalPurple': 'royalPurpleGryphon'
|
'Gryphon-RoyalPurple': 'royalPurpleGryphon'
|
||||||
'Phoenix-Base': 'phoenix'
|
'Phoenix-Base': 'phoenix'
|
||||||
|
'JackOLantern-Base': 'jackolantern'
|
||||||
|
|
||||||
api.timeTravelStable =
|
api.timeTravelStable =
|
||||||
pets:
|
pets:
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ let specialMounts = {
|
|||||||
'Mammoth-Base': 'mammoth',
|
'Mammoth-Base': 'mammoth',
|
||||||
'Orca-Base': 'orca',
|
'Orca-Base': 'orca',
|
||||||
'Gryphon-RoyalPurple': 'royalPurpleGryphon',
|
'Gryphon-RoyalPurple': 'royalPurpleGryphon',
|
||||||
'Phoenix-Base': 'phoenix'
|
'Phoenix-Base': 'phoenix',
|
||||||
|
'JackOLantern-Base': 'jackolantern'
|
||||||
}
|
}
|
||||||
|
|
||||||
export default specialMounts;
|
export default specialMounts;
|
||||||
|
|||||||
67
migrations/20151013_jackolanterns.js
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
var migrationName = 'new_stuff.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 Jack-O'-Lantern mounts to users who already have the pet version, award pet if they don't
|
||||||
|
*/
|
||||||
|
|
||||||
|
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.JackOLantern-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.pets['JackOLantern-Base']) {
|
||||||
|
set = {'migration':migrationName, 'items.mounts.JackOLantern-Base':true};
|
||||||
|
} else {
|
||||||
|
set = {'migration':migrationName, 'items.pets.JackOLantern-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);
|
||||||
|
}
|
||||||
@@ -1,5 +1,29 @@
|
|||||||
h2 10/8/2015 - WORLD BOSS REVEALED: BURNOUT!
|
h2 10/13/2015 - JACK O'LANTERN PETS AND MOUNTS! WORLD BOSS EXHAUST STRIKE!
|
||||||
hr
|
hr
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
.Pet-JackOLantern-Base.pull-right
|
||||||
|
h3 Jack O'Lantern Pets and Mounts
|
||||||
|
p The Flourishing Fields are full of cute carved pumpkins - and it looks like one has followed you home!
|
||||||
|
br
|
||||||
|
p Those of you who weren't around last Fall Festival have received an adorable pet Jack-O'-Lantern, and those of you who got one last year have received a cheerful Jack-O'-Lantern Mount! Thank you for using Habitica - we really love you all <3
|
||||||
|
p.small.muted by Lemoness
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
.npc_ian_broken.pull-right
|
||||||
|
h3 World Boss: Burnout Uses Exhaust Strike!
|
||||||
|
p Oh no! Despite our best efforts, we've let some Dailies get away from us, and now Burnout is inflamed with energy! With a crackling snarl, it engulfs Ian the Quest Master in a surge of spectral fire. As fallen quest scrolls smolder, the smoke clears, and you see that Ian has been drained of energy and turned into a drifting Exhaust Spirit!
|
||||||
|
br
|
||||||
|
p Only defeating Burnout can break the spell and save our beloved Quest Master. Let's keep our Dailies in check and defeat this monster before it attacks again!
|
||||||
|
br
|
||||||
|
p Late to the fight? Learn about Burnout and how to defeat World Bosses <a href='http://habitica.wikia.com/wiki/Boss#World_Bosses' target='_blank'>here</a>.
|
||||||
|
|
||||||
|
if menuItem !== 'oldNews'
|
||||||
|
hr
|
||||||
|
a(href='/static/old-news', target='_blank') Read older news
|
||||||
|
|
||||||
|
mixin oldNews
|
||||||
|
h2 10/8/2015 - WORLD BOSS REVEALED: BURNOUT!
|
||||||
tr
|
tr
|
||||||
td
|
td
|
||||||
.promo_burnout.pull-right
|
.promo_burnout.pull-right
|
||||||
@@ -24,11 +48,6 @@ h2 10/8/2015 - WORLD BOSS REVEALED: BURNOUT!
|
|||||||
br
|
br
|
||||||
p.small.muted by Lemoness, SabreCat, and Kiwibot
|
p.small.muted by Lemoness, SabreCat, and Kiwibot
|
||||||
|
|
||||||
if menuItem !== 'oldNews'
|
|
||||||
hr
|
|
||||||
a(href='/static/old-news', target='_blank') Read older news
|
|
||||||
|
|
||||||
mixin oldNews
|
|
||||||
h2 10/5/2015 - OCTOBER BACKGROUNDS REVEALED, COSTUME CHALLENGE BEGINS, AND FALL PLOT-LINE CONTINUES
|
h2 10/5/2015 - OCTOBER BACKGROUNDS REVEALED, COSTUME CHALLENGE BEGINS, AND FALL PLOT-LINE CONTINUES
|
||||||
tr
|
tr
|
||||||
td
|
td
|
||||||
|
|||||||