From 9cea86f4e03473ff1ee8c8bdfd1d6b3d3462e694 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Thu, 22 Nov 2018 15:05:03 -0600 Subject: [PATCH] feat(content): Turkey Day 2018 --- migrations/users/20181122_turkey_day.js | 110 ++++++++++++++++++ website/client/assets/scss/variables.scss | 8 +- website/common/locales/en/gear.json | 6 + .../script/content/gear/sets/special/index.js | 18 +++ .../broad_armor_special_turkeyArmorGilded.png | Bin 0 -> 454 bytes .../shop_armor_special_turkeyArmorGilded.png | Bin 0 -> 403 bytes .../slim_armor_special_turkeyArmorGilded.png | Bin 0 -> 447 bytes .../back/back_special_turkeyTailGilded.png | Bin 0 -> 659 bytes .../shop_back_special_turkeyTailGilded.png | Bin 0 -> 601 bytes .../head/head_special_turkeyHelmGilded.png | Bin 0 -> 556 bytes .../shop_head_special_turkeyHelmGilded.png | Bin 0 -> 499 bytes .../spritesmith/npcs/npc_bailey.png | Bin 3673 -> 10492 bytes .../raw_sprites/spritesmith/npcs/npc_matt.png | Bin 5861 -> 6004 bytes .../promo_turkey_day_2018.png | Bin 0 -> 18309 bytes website/server/controllers/api-v3/news.js | 15 ++- website/server/models/user/hooks.js | 3 +- 16 files changed, 149 insertions(+), 11 deletions(-) create mode 100644 migrations/users/20181122_turkey_day.js create mode 100644 website/raw_sprites/spritesmith/gear/armor/broad_armor_special_turkeyArmorGilded.png create mode 100644 website/raw_sprites/spritesmith/gear/armor/shop/shop_armor_special_turkeyArmorGilded.png create mode 100644 website/raw_sprites/spritesmith/gear/armor/slim_armor_special_turkeyArmorGilded.png create mode 100644 website/raw_sprites/spritesmith/gear/back/back_special_turkeyTailGilded.png create mode 100644 website/raw_sprites/spritesmith/gear/back/shop/shop_back_special_turkeyTailGilded.png create mode 100644 website/raw_sprites/spritesmith/gear/head/head_special_turkeyHelmGilded.png create mode 100644 website/raw_sprites/spritesmith/gear/head/shop/shop_head_special_turkeyHelmGilded.png create mode 100644 website/raw_sprites/spritesmith_large/promo_turkey_day_2018.png diff --git a/migrations/users/20181122_turkey_day.js b/migrations/users/20181122_turkey_day.js new file mode 100644 index 0000000000..c68cd97b29 --- /dev/null +++ b/migrations/users/20181122_turkey_day.js @@ -0,0 +1,110 @@ +/* eslint-disable no-console */ +const MIGRATION_NAME = '20181122_turkey_day'; +import mongoose from 'mongoose'; +import { model as User } from '../../website/server/models/user'; + +const progressCount = 1000; +let count = 0; + +async function updateUser (user) { + count++; + + const set = {}; + let push; + + set.migration = MIGRATION_NAME; + + if (typeof user.items.gear.owned.armor_special_turkeyArmorBase !== 'undefined') { + set['items.gear.owned.head_special_turkeyHelmGilded'] = false; + set['items.gear.owned.armor_special_turkeyArmorGilded'] = false; + set['items.gear.owned.back_special_turkeyTailGilded'] = false; + push = [ + { + type: 'marketGear', + path: 'gear.flat.head_special_turkeyHelmGilded', + _id: new mongoose.Types.ObjectId(), + }, + { + type: 'marketGear', + path: 'gear.flat.armor_special_turkeyArmorGilded', + _id: new mongoose.Types.ObjectId(), + }, + { + type: 'marketGear', + path: 'gear.flat.back_special_turkeyTailGilded', + _id: new mongoose.Types.ObjectId(), + }, + ]; + } else if (user.items && user.items.mounts && user.items.mounts['Turkey-Gilded']) { + set['items.gear.owned.head_special_turkeyHelmBase'] = false; + set['items.gear.owned.armor_special_turkeyArmorBase'] = false; + set['items.gear.owned.back_special_turkeyTailBase'] = false; + push = [ + { + type: 'marketGear', + path: 'gear.flat.head_special_turkeyHelmBase', + _id: new mongoose.Types.ObjectId(), + }, + { + type: 'marketGear', + path: 'gear.flat.armor_special_turkeyArmorBase', + _id: new mongoose.Types.ObjectId(), + }, + { + type: 'marketGear', + path: 'gear.flat.back_special_turkeyTailBase', + _id: new mongoose.Types.ObjectId(), + }, + ]; + } else if (user.items && user.items.pets && user.items.pets['Turkey-Gilded']) { + set['items.mounts.Turkey-Gilded'] = true; + } else if (user.items && user.items.mounts && user.items.mounts['Turkey-Base']) { + set['items.pets.Turkey-Gilded'] = 5; + } else if (user.items && user.items.pets && user.items.pets['Turkey-Base']) { + set['items.mounts.Turkey-Base'] = true; + } else { + set['items.pets.Turkey-Base'] = 5; + } + + if (count % progressCount === 0) console.warn(`${count} ${user._id}`); + + if (push) { + return await User.update({_id: user._id}, {$set: set, $push: {pinnedItems: {$each: push}}}).exec(); + } else { + return await User.update({_id: user._id}, {$set: set}).exec(); + } +} + +module.exports = async function processUsers () { + let query = { + migration: {$ne: MIGRATION_NAME}, + 'auth.timestamps.loggedin': {$gt: new Date('2018-11-07')}, + }; + + const fields = { + _id: 1, + items: 1, + }; + + while (true) { // eslint-disable-line no-constant-condition + const users = await User // eslint-disable-line no-await-in-loop + .find(query) + .limit(250) + .sort({_id: 1}) + .select(fields) + .lean() + .exec(); + + if (users.length === 0) { + console.warn('All appropriate users found and modified.'); + console.warn(`\n${count} users processed\n`); + break; + } else { + query._id = { + $gt: users[users.length - 1], + }; + } + + await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop + } +}; diff --git a/website/client/assets/scss/variables.scss b/website/client/assets/scss/variables.scss index 573376536b..ce054846bc 100644 --- a/website/client/assets/scss/variables.scss +++ b/website/client/assets/scss/variables.scss @@ -2,8 +2,8 @@ // possible values are: normal, fall, habitoween, thanksgiving, winter, nye, birthday, valentines, spring, summer // more to be added on future seasons -$npc_market_flavor: 'normal'; -$npc_quests_flavor: 'normal'; -$npc_seasonal_flavor: 'normal'; +$npc_market_flavor: 'thanksgiving'; +$npc_quests_flavor: 'thanksgiving'; +$npc_seasonal_flavor: 'thanksgiving'; $npc_timetravelers_flavor: 'normal'; -$npc_tavern_flavor: 'normal'; +$npc_tavern_flavor: 'thanksgiving'; diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index 5bb20fe3b9..2c6563f9bc 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -477,6 +477,8 @@ "armorSpecialSamuraiArmorNotes": "This strong, scaled armor is held together by elegant silk cords. Increases Perception by <%= per %>.", "armorSpecialTurkeyArmorBaseText": "Turkey Armor", "armorSpecialTurkeyArmorBaseNotes": "Keep your drumsticks warm and cozy in this feathery armor! Confers no benefit.", + "armorSpecialTurkeyArmorGildedText": "Gilded Turkey Armor", + "armorSpecialTurkeyArmorGildedNotes": "Strut your stuff in this seasonally shiny armor! Confers no benefit.", "armorSpecialYetiText": "Yeti-Tamer Robe", "armorSpecialYetiNotes": "Fuzzy and fierce. Increases Constitution by <%= con %>. Limited Edition 2013-2014 Winter Gear.", @@ -933,6 +935,8 @@ "headSpecialNamingDay2017Notes": "Happy Naming Day! Wear this fierce and feathery helm as you celebrate Habitica. Confers no benefit.", "headSpecialTurkeyHelmBaseText": "Turkey Helm", "headSpecialTurkeyHelmBaseNotes": "Your Turkey Day look will be complete when you don this beaked helm! Confers no benefit.", + "headSpecialTurkeyHelmGildedText": "Gilded Turkey Helm", + "headSpecialTurkeyHelmGildedNotes": "Gobble gobble! Bling bling! Confers no benefit.", "headSpecialNyeText": "Absurd Party Hat", "headSpecialNyeNotes": "You've received an Absurd Party Hat! Wear it with pride while ringing in the New Year! Confers no benefit.", @@ -1617,6 +1621,8 @@ "backSpecialAetherCloakNotes": "This cloak once belonged to the Lost Masterclasser herself. Increases Perception by <%= per %>.", "backSpecialTurkeyTailBaseText": "Turkey Tail", "backSpecialTurkeyTailBaseNotes": "Wear your noble Turkey Tail with pride while you celebrate! Confers no benefit.", + "backSpecialTurkeyTailGildedText": "Gilded Turkey Tail", + "backSpecialTurkeyTailGildedNotes": "Plumage fit for a parade! Confers no benefit.", "backBearTailText": "Bear Tail", "backBearTailNotes": "This tail makes you look like a brave bear! Confers no benefit.", "backCactusTailText": "Cactus Tail", diff --git a/website/common/script/content/gear/sets/special/index.js b/website/common/script/content/gear/sets/special/index.js index d163bde3f5..998308cda2 100644 --- a/website/common/script/content/gear/sets/special/index.js +++ b/website/common/script/content/gear/sets/special/index.js @@ -1053,6 +1053,12 @@ let armor = { value: 90, con: 15, }, + turkeyArmorGilded: { + text: t('armorSpecialTurkeyArmorGildedText'), + notes: t('armorSpecialTurkeyArmorGildedNotes'), + value: 0, + canOwn: ownsItem('armor_special_turkeyArmorGilded'), + }, }; let back = { @@ -1157,6 +1163,12 @@ let back = { return true; }, }, + turkeyTailGilded: { + text: t('backSpecialTurkeyTailGildedText'), + notes: t('backSpecialTurkeyTailGildedNotes'), + value: 0, + canOwn: ownsItem('back_special_turkeyTailGilded'), + }, }; let body = { @@ -2380,6 +2392,12 @@ let head = { value: 60, int: 7, }, + turkeyHelmGilded: { + text: t('headSpecialTurkeyHelmGildedText'), + notes: t('headSpecialTurkeyHelmGildedNotes'), + value: 0, + canOwn: ownsItem('head_special_turkeyHelmGilded'), + }, }; let headAccessory = { diff --git a/website/raw_sprites/spritesmith/gear/armor/broad_armor_special_turkeyArmorGilded.png b/website/raw_sprites/spritesmith/gear/armor/broad_armor_special_turkeyArmorGilded.png new file mode 100644 index 0000000000000000000000000000000000000000..2c86483842d3e8fb089fe556c0955d9544e986ee GIT binary patch literal 454 zcmeAS@N?(olHy`uVBq!ia0vp^ML-~;rF71)#4$eEBdBwQ9O6=Wlqlt?| dAz_iQCO`9D;`HM?O;3XaJYD@<);T3K0RYUiyovw- literal 0 HcmV?d00001 diff --git a/website/raw_sprites/spritesmith/gear/armor/shop/shop_armor_special_turkeyArmorGilded.png b/website/raw_sprites/spritesmith/gear/armor/shop/shop_armor_special_turkeyArmorGilded.png new file mode 100644 index 0000000000000000000000000000000000000000..7350389a59045c7b76c2001017e17dac063acd41 GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1|%(nCvO5$oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#5x0ntwnd%tWl07GMk7xb$B>F!Z?En3Vs;d1dsy!BXD>rFcQ6af#!VZ8H*ETB zr}M_eaBb_>?FrMh60D?GD|Co?CcbCQSadeZLU_|b9kH9Ljo%w}%PcnQ%*j8m<1tCa z6N(n;#9dxBdlqZ;WN|H@BNrBIWj}E0V)DafO}i4Dv^GV!8U-ys{Ev}A|M_-?n%WqK z4O_}s4}5=~n)kUP_S*%&&XcFSx;QmIN88+sI?FI?Z(W{kX+`DUiLV%TR9l_C+N=IF z<@v0O&wXcUzN|bOXFp>?Y$6vZTjQPRN+q{dH2Oad` nDvTHVKK0)}H5Y`Z((d#7YsYeY*rcor3{VD7S3j3^P6Dqu#z@ce5;4lf}**nie~M z+REH-}ySCOPkqRK0w#@KTHFaW-oqZco$CrJa{e z*bcvoTQlE3Kk4t!IIbTZFUrTE#&Ia`0nl`Y9&g#>}bYiY}#XlX;k Q_lY0@Pgg&ebxsLQ0KLY!dH?_b literal 0 HcmV?d00001 diff --git a/website/raw_sprites/spritesmith/gear/back/back_special_turkeyTailGilded.png b/website/raw_sprites/spritesmith/gear/back/back_special_turkeyTailGilded.png new file mode 100644 index 0000000000000000000000000000000000000000..3bc81bb8332f3bd50e56f1c57bda315333d7c953 GIT binary patch literal 659 zcmV;E0&M+>P)E`zVG;aPQRvS{_X7Z?K|)LPNM+;0000000000000000000$#;Ur%fjuK5i~V?< zSDj9+{}!wLFAoMEq-d>1gg(8!rFb*VqiJ58nNIV%W3y@gxo{=B=HR(cwT@gnQnVsk zdx+C#a}(+Iuisl~-nwmPntwbxoQ>JIe*VUxG>_eSpXQGr-lcit^HbT#t#ZuTk)o9< zSySaWZ6E)fZJ0yNMu@~#xV?ze*O%^w2)$aw=J;?nPKP$Mi~Bx)8(Q&jh}q(`RV`-i zNYRSc+GRUkyS|9Tx%1o8ygS6>xBZiUY_L&W|681fC@y>axcsWxjzidGyD_(ul;;`(b3zNGo`iA@6;r*@=hMYMJq zv+-i8*gU(5+0#dMrFrVk-t2QtoPC+*doM1e`Q*NvX};fC$lf=$->O|XU`L8pL~9Q* zTNa_Qk;cf4Z8M5%V$8-Uj?Yz>3$g4-(TZs8A!eg^3Mqc^{~Ix)TMsv9*SM|~A0z`1 tt;>zveyQV+UhPQH3IG5A00026q+h}C?yOPwvCIGf002ovPDHLkV1mydJ=FjJ literal 0 HcmV?d00001 diff --git a/website/raw_sprites/spritesmith/gear/back/shop/shop_back_special_turkeyTailGilded.png b/website/raw_sprites/spritesmith/gear/back/shop/shop_back_special_turkeyTailGilded.png new file mode 100644 index 0000000000000000000000000000000000000000..15890f1080d647c69e74db39f02cf7f05822de20 GIT binary patch literal 601 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1|%(nCvO5$oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#5x0ntj-kiCzf}wjj6XbG978H@y`ACc5#lJ*zF&!JRj&q1{>eBouO((&6K_N- zRpl?deQ9B`VhP70jV3f~%fxsBmFB_(xh!*G!;i}wtcy_(P;kLEs zqy_8lzdd`V`g4L^-RJp?iY)?89B|^uLzh>azrB|3^*dIdwRO_J$DWoGZ%nw*ade~i z%_CEHGrT!_mZ=~uL$2ZOT=BTyZ;#LR?478%lE=_^+N@B9y1eTQJMLU%KJb1f<9U(S z_bV>*JN&#G&akikH`9TiPk+xdtemOj%;fhp)vdPT^ywxi*6oi>zt5Su@!Old#*b3d z4kcVPUR*DF0tC*N3F^zFs^bF0tQ+G{QmDZD9XA}G41kY);+1uUb_)JvX zXq2-5%!}H;8*={&rgep`n5O#r+>8x;oM$niYV&(c9~N$X+`IWqXYIC$ik0)r zoP(W|b+pe&oMt(E>#T_JiG7p5uMBTnvX9?z&7v)_PwNdAXI&QGTXwfyrri0P@v`8c lyZcTHz#{-06;F=Hx8Hs@MdbIq4Zvi<;OXk;vd$@?2>{hv5bFQ{ literal 0 HcmV?d00001 diff --git a/website/raw_sprites/spritesmith/gear/head/head_special_turkeyHelmGilded.png b/website/raw_sprites/spritesmith/gear/head/head_special_turkeyHelmGilded.png new file mode 100644 index 0000000000000000000000000000000000000000..905d1aafc2c52d2d84a68aaa1c66818e3409e1f4 GIT binary patch literal 556 zcmeAS@N?(olHy`uVBq!ia0vp^ML-S45qGf$_Abi(^Q|t+%)LdrK!uuow8R*?+)w;f{_M0u#kbUM%?U zaL_Ym5norm)AWDx>+&uwy|&bX(~F(^lHby1zBGX=XOB7>{F6BMw$^{gga}37bLZ2m zik=kR*;~1<@|}XLECa)ZSChhv=4DhWO(&(O+0x6myL%@lzyH0~Y2N<6Efcm( zS{MHDw_(_&i4h(?YtQdGc)oPEwRC(>&#_;Rbo@3H@8>FxEm@Lr^vbV87QUBftoeTR zt<-zFzNhE^2FSmk+xF|-v*;DOf1ff8pS91vVXRb}? zy&N@vriy2DjJ~X9l;PHY%`+b^43Lk_d*+r@R_*^kX~qAX8ji2Kr=BnUepb%gJxNj1 zZOgJs^EWSFevgn}^V}`z+V!j3OZlhVHUB-6-QMn)VQGz`^mX0e3mn|L!fXUG45FTU z*Csyxc3-0T>C3HmWT&UGJ?cKVI>67zul3iH4>slZ*WSNg+P^h;<+e9lFHc+~8l2r+ zxIcL1GE*hJliiQhFWzc+sy}__ab5rQOWz7Cw+h;ll$HDG$nPf)4=gt~^t&$4Rr$~A p5-{xk=Rf(iSX)d87?YS_)+0fF{k%ZIE(S)Bq^GN&%Q~loCIDS-``7>g literal 0 HcmV?d00001 diff --git a/website/raw_sprites/spritesmith/gear/head/shop/shop_head_special_turkeyHelmGilded.png b/website/raw_sprites/spritesmith/gear/head/shop/shop_head_special_turkeyHelmGilded.png new file mode 100644 index 0000000000000000000000000000000000000000..6ef7e8759590130b48709630dca382946767a233 GIT binary patch literal 499 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1|%(nCvO5$oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#5x0ntj?k-{Jsb=SjFUWF978H@y}hyDn<-J|_{Z}O}0p2)!C(v0jnQoR_uAvw_0e=SQB) z$^EGNV|S;q0|rhUFu3cV(H6q2ukLhmLGVc?gMBePx%FNh=L?oRvYO6Q%kSlJ!dB%2 z%gZ_IZ+6d&wBBcPGj3Di?eBlJ6cxV;Femizo~Yjaank%BZ( hS2rx6Ks3h(&Ns&kjGw%jEC7r!22WQ%mvv4FO#pi;*c|`> literal 0 HcmV?d00001 diff --git a/website/raw_sprites/spritesmith/npcs/npc_bailey.png b/website/raw_sprites/spritesmith/npcs/npc_bailey.png index d5940b986bb48e28954dbf7234480f8421353806..ee18cd560dfca4891b730f6002493a0044905947 100644 GIT binary patch literal 10492 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 literal 3673 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 diff --git a/website/raw_sprites/spritesmith/npcs/npc_matt.png b/website/raw_sprites/spritesmith/npcs/npc_matt.png index 2531f1084b244b572e1de6984dee8b481fa54ac9..ef720ee71834c20ab058d5f949df7ee93a8fab4f 100644 GIT binary patch delta 3285 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 z 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 literal 0 HcmV?d00001 diff --git a/website/server/controllers/api-v3/news.js b/website/server/controllers/api-v3/news.js index ad10cdeab3..80eb3a356f 100644 --- a/website/server/controllers/api-v3/news.js +++ b/website/server/controllers/api-v3/news.js @@ -3,7 +3,7 @@ import { authWithHeaders } from '../../middlewares/auth'; let api = {}; // @TODO export this const, cannot export it from here because only routes are exported from controllers -const LAST_ANNOUNCEMENT_TITLE = 'THUNDERSTORM AND FROST HATCHING POTIONS'; +const LAST_ANNOUNCEMENT_TITLE = 'HAPPY THANKSGIVING!'; const worldDmg = { // @TODO bailey: false, }; @@ -30,14 +30,17 @@ api.getNews = {

${res.t('newStuff')}

-

11/20/2018 - ${LAST_ANNOUNCEMENT_TITLE}

+

11/22/2018 - ${LAST_ANNOUNCEMENT_TITLE}


-
-

We've brought back Thunderstorm Potions, and added a brand-new Magic Hatching Potion: Frost! Between now and November 30, you can buy these Hatching Potions from the Market and use them to hatch any standard pet egg. (Magic Hatching Potions do not work on Quest Pet eggs.) Magic Hatching Potion Pets aren't picky, so they'll happily eat any kind of food that you feed them!

-

After they're gone, it will be at least a year before the Thunderstorm or Frost Hatching Potions are available again, so be sure to get them now!

-
by Balduranne and SabreCat
+
+

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!

+

Turkey Pet, Mount, and Costumes!

+

In celebration of Turkey Day, everyone has received an adorable Turkey! What kind of Turkey? It all depends on how many Habitica Thanksgivings you've celebrated with us. Each Thanksgiving, you'll get a new and exciting Turkey variety!

+

Thank you for using Habitica - we really love you all <3

+
by Lemoness and Beffymaroo
+
`, }); diff --git a/website/server/models/user/hooks.js b/website/server/models/user/hooks.js index f85972d227..995fa34a87 100644 --- a/website/server/models/user/hooks.js +++ b/website/server/models/user/hooks.js @@ -125,7 +125,8 @@ function _setUpNewUser (user) { let iterableFlags = user.flags.toObject(); user.items.quests.dustbunnies = 1; - user.items.pets['Wolf-Veteran'] = 5; // Thank-you for users joining during username upheaval + user.items.pets['Turkey-Base'] = 5; + user.items.currentPet = 'Turkey-Base'; user.purchased.background.violet = true; user.preferences.background = 'violet';