From 93aae9a883e5ec7382b4e1493556fa90866f833f Mon Sep 17 00:00:00 2001 From: Taldin Date: Tue, 28 Oct 2014 12:23:00 -0700 Subject: [PATCH 01/58] Revert "bailey(communityGuidelines): -breadstrings x1" This reverts commit edc9382e99727635aa05c5c2c1d299bbe80268ee. --- views/shared/new-stuff.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/new-stuff.jade b/views/shared/new-stuff.jade index 91e61ff1f0..fe13e460ff 100644 --- a/views/shared/new-stuff.jade +++ b/views/shared/new-stuff.jade @@ -14,7 +14,7 @@ table td h5 Community Guidelines p Our community has grown and evolved over this past year and a half, and we realized that none of the community expectations had been codified anywhere. This has now changed with the implementation of the Community Guidelines. The Guidelines have been written by the staff and mods and illustrated by many of our talented artisans. We know they're long, but they contain all the expectations for participating in the public social side of HabitRPG, so please do read them carefully! Soon you'll have to agree to them to participate in any of the Public Chat. - p.small.muted by Alys, Lemoness, lefnire, redphoenix, SabreCat, paglias, Bailey, Ryan, Breadstrings, Megan, Daniel the Bard, Draayder, Kiwibot, Leephon, Luciferian, Revcleo, Shaner, Starsystemic, UncommonCriminal + p.small.muted by Alys, Lemoness, lefnire, redphoenix, SabreCat, paglias, Bailey, Ryan, Breadstrings, Megan, Daniel the Bard, Breadstrings, Draayder, Kiwibot, Leephon, Luciferian, Revcleo, Shaner, Starsystemic, UncommonCriminal tr td h5 Increased Gems For Contributors From 58e8a8ea9b12ad19335ff4c8c1b885a6da4bc1f8 Mon Sep 17 00:00:00 2001 From: Taldin Date: Tue, 28 Oct 2014 12:56:31 -0700 Subject: [PATCH 02/58] Revert "Revert "bailey(communityGuidelines): -breadstrings x1"" This reverts commit 93aae9a883e5ec7382b4e1493556fa90866f833f. --- views/shared/new-stuff.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/new-stuff.jade b/views/shared/new-stuff.jade index fe13e460ff..91e61ff1f0 100644 --- a/views/shared/new-stuff.jade +++ b/views/shared/new-stuff.jade @@ -14,7 +14,7 @@ table td h5 Community Guidelines p Our community has grown and evolved over this past year and a half, and we realized that none of the community expectations had been codified anywhere. This has now changed with the implementation of the Community Guidelines. The Guidelines have been written by the staff and mods and illustrated by many of our talented artisans. We know they're long, but they contain all the expectations for participating in the public social side of HabitRPG, so please do read them carefully! Soon you'll have to agree to them to participate in any of the Public Chat. - p.small.muted by Alys, Lemoness, lefnire, redphoenix, SabreCat, paglias, Bailey, Ryan, Breadstrings, Megan, Daniel the Bard, Breadstrings, Draayder, Kiwibot, Leephon, Luciferian, Revcleo, Shaner, Starsystemic, UncommonCriminal + p.small.muted by Alys, Lemoness, lefnire, redphoenix, SabreCat, paglias, Bailey, Ryan, Breadstrings, Megan, Daniel the Bard, Draayder, Kiwibot, Leephon, Luciferian, Revcleo, Shaner, Starsystemic, UncommonCriminal tr td h5 Increased Gems For Contributors From e004452257ee235c9287138654e2014b074b9fc2 Mon Sep 17 00:00:00 2001 From: Taldin Date: Tue, 28 Oct 2014 15:15:01 -0700 Subject: [PATCH 03/58] Revert "Revert "bailey(communityGuidelines): -breadstrings x1"" This reverts commit 93aae9a883e5ec7382b4e1493556fa90866f833f. --- CHANGELOG.md | 282 --------------------------------------------------- 1 file changed, 282 deletions(-) delete mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index bacc54d3f8..0000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,282 +0,0 @@ -My app - Changelog -# (2014-02-15) - - -## Documentation - -- **rebirth:** Bullet point about repurchase of limited ed gear after Rebirth - ([d3f4a561](watch/commits/d3f4a561fdf137e5d8f406bae03be4fef1caff22)) - - -## Bug Fixes - -- **#2003:** healer gear not showing - ([949cd97b](watch/commits/949cd97b91b42e9450eba559bbfea17e239ab100)) -- **#2375:** merge in @SabreCat's stats.jade changes "More elegant show/hide setup for attribute bonuses" - ([518f200a](watch/commits/518f200a8fc7373b44ed7d7b5f016d921b0746bd)) -- **allocateNow:** Send empty object to user.ops per @colegleason suggestion - ([f6e12fa2](watch/commits/f6e12fa25e4366622db3e6f1b6ab03e848b49e10)) -- **batch-update:** send errors to client if batch-update found an error, crash pid. - ([f9679629](watch/commits/f967962996be69a5335454610af76d10e1db08b8)) -- **beastmaster:** fixes #2557, adds opacity to previously-owned pets after they're mounted. You can earn them back again - ([5caaff1c](watch/commits/5caaff1cea1a68fe572e7ddf4aac50248b13df5d)) -- **bosses:** don't reset progress.up when starting a new quest. We want to be able to carry over damage from the same day a boss battle begins, even if the dailies were completed before battle-start. Fixes #2168 - ([4efd0f5e](watch/commits/4efd0f5ed8708f2491dd483f93e3d7a268a6337d)) -- **bower:** updated jquery directory - ([191b789d](watch/commits/191b789d760a7bdc7d1b53727f6127b677c78c94)) -- **bs3:** - - fix to MemberModalCtrl parameter - ([ebd1df93](watch/commits/ebd1df932e28263e5cc01e8a35f545ab26f1e8bd)) - - port pet feeding bar - ([5db96ebc](watch/commits/5db96ebca2fbd5b64f49af03a5137ea80f6b1673)) -- **buffs:** Move help bubble to left of special buffs - ([4f911a68](watch/commits/4f911a68d805742e6744383948eea6f224f2b0ea)) -- **challenges:** - - better handling of deleted challenges. If !chal, break the task.challenge. Move the function into userController#score so we have access to next, etc. fixes #1883 - ([33b326b5](watch/commits/33b326b59685ea6e50f9950094d009460ce80094)) - - challenge csv export now has proper filename - ([36f21196](watch/commits/36f21196f466260b7cd52b283c50b9e16943f668), - [#2689](watch/issues/2689)) -- **classes:** - - misc fixes - ([d2121a85](watch/commits/d2121a858716cb5a532a53ee9c5a1adaa74a7f69)) - - misc class fixes (not @snicker, ng-if on item store since we dynamically swap it sometimes) - ([478be611](watch/commits/478be6111337cd200374f7f31b959725c6a0b945)) -- **css:** - - temp fix for bailey height - ([c8faffcc](watch/commits/c8faffcc7289090990c3a17ab8c07a00069f5ce4)) - - menu and gems wallet margin - ([975b5165](watch/commits/975b5165730477310aa64bac27ddc07a34ea6c1d)) - - lighter columns title - ([a22e2814](watch/commits/a22e28143f74302c8340c3d33b01af9714875523)) - - better food tray - ([1c41c4dd](watch/commits/1c41c4ddb9a5b04297a371bc4d6aba013ce33f17)) -- **errors:** - - `return next(err)` when experiencing errors, instead of res.json(500,{err:err}). Let the top-level error handler handle this (needed for upcoming versionerror discarding) - ([bf5e9016](watch/commits/bf5e9016a4cb7889b3a9e39b90eb35cb8f7f9ec8)) - - handle if err.message == undefined, send err - ([b42dacf2](watch/commits/b42dacf2035d62453b585cfcf453829a423b59de)) -- **event-tracking:** - - typo - ([ff9d4b88](watch/commits/ff9d4b886ef7a98da0514975441a8bb845496c31)) - - stripe sub, not pp - ([0c99976b](watch/commits/0c99976bf5a3c7f04f031d62a8b07c862c85a0a9)) -- **find_uniq_user:** fix - ([ecbe780e](watch/commits/ecbe780e70549b1470504efe052f238c89a9db14)) -- **footer:** ensure window.env is accessible from static pages, so we can get deferred scripts on frontpage (esp google analytics) - ([67ee011a](watch/commits/67ee011aa35969db93e2d7dc1cd1e1f587f146de)) -- **groups:** - - pass missing next into Like function - ([afee0968](watch/commits/afee0968f8f6923847e186d3e11b9745ced9606e)) - - send error if +1 errored - ([5b6c4427](watch/commits/5b6c4427b504b6143f24bfee314f562b9803c5a4)) -- **hall:** let's try $gt instead of $ne:null, the query is still slow - ([a72b0131](watch/commits/a72b013131cfc7fa5d3affdbfe59b5b3cb15ae89)) -- **i18n:** do not save user language for now - ([094a4be0](watch/commits/094a4be0015f0f0deaaf94a0734193eb40a8beae)) -- **misc:** - - some styles & translations - ([8f19f225](watch/commits/8f19f225f104960b3cf27e229a5571e014be697c)) - - isStaticPage and debug buttons - ([19139f56](watch/commits/19139f562b8e68ed43f4cab748920f1e0634e86e)) -- **missing-gems:** remove ad-removal from script, since ads are part of subscription - ([e1240dde](watch/commits/e1240dde1d3dcaca4235fad384fea5c07a3706bf)) -- **mongoose:** typo - ([2786b362](watch/commits/2786b362067efdd245c3efa3a4891021fcfaab2d)) -- **mounts:** - - fix pets & mounts css to position the user based on pet/mount equip - ([37340d23](watch/commits/37340d23180da02d3742dc9be40a5fb780ecb13b)) - - Move avatar upward when mounted regardless of pet - ([bc1adeb1](watch/commits/bc1adeb1277103a5ca1f756e175ed68bbe837a2f)) -- **nodemon:** - - Add another ignore for weirdsauce Windoze dev environments - ([3fda08c3](watch/commits/3fda08c366793c8fbcbf701a9594ae3b2fd8bbea)) - - ignore CHANGELOG.md on watch - ([d6c55952](watch/commits/d6c55952da8b49f36e9d8e4570d80931d081343d)) -- **party:** Round boss health up instead of to nearest integer - ([626da568](watch/commits/626da5681f5ea95700f8ddf40587c7184926971c), - [#2504](watch/issues/2504)) -- **paypal:** fixes #2492, remove environment check for now, only have production-mode option. revisit - ([1dc68112](watch/commits/1dc68112d131e4ebdec32ddff938eb6311d6565f)) -- **performance:** cache spritesmith image, fix #2633 - ([f03d7d7d](watch/commits/f03d7d7dde4f8cb39babd2b982d77e7f88f349b7)) -- **pets:** add questPets to UserSchema.items.mounts too fixes #2814 - ([42766125](watch/commits/42766125d5c8870f25c3a0a001473f700b8f6cc1)) -- **profile:** fix bug where empty profile displayed on username click - ([0579c432](watch/commits/0579c432489c4a038e8c9f95ea3b285f5abc146f), - [#2465](watch/issues/2465)) -- **quests:** - - quests with a level cap cannot be bought before that level. - ([dab9ddbd](watch/commits/dab9ddbda27f5e10e4545fea703deebfe2dd9975), - [#2707](watch/issues/2707)) - - bug fix to multi-drop - ([f478d10c](watch/commits/f478d10c20f816cd104b3f0da814c189957f45f5)) - - list multiple rewards in dialog - ([e48c7277](watch/commits/e48c7277f8256cf827790aece51e897fe0439374)) -- **readme:** remove text about translations wip - ([f2bb1fd2](watch/commits/f2bb1fd26e44a9eb0ba325776bf335e021beeece)) -- **settings:** - - remove unnecessary code - ([5f0cf657](watch/commits/5f0cf6575c0dc4cfc041956e3dc27898d8b4242d)) - - reintroduce space between captions and help bubbles stripped during localization - ([5ddf09fe](watch/commits/5ddf09fe13c7f8d844c8c47be0fb8f8b2fd1df33)) -- **spells:** - - temp workaround for spell & task being undefined. #2649 #2640 - ([241d0414](watch/commits/241d04140f5db77929d9f597d232f55843bb0f5d)) - - more $rootScope spell-casting bug fixes - ([47bd6dcb](watch/commits/47bd6dcb79778d90d6f3ddeb003c3d8e45433333)) - - add some spells tests, don't send up body to spell paths - ([e0646bb9](watch/commits/e0646bb98d44b6874b5259107c9be5fa34c58933)) - - some $rootScope.applying action fixes so cast-ending is immediate instead of waiting on response. Also, slim down party population to the essentials to avoid RequestEntityTooLarge - ([c6f7ab8a](watch/commits/c6f7ab8a5c6f4e382208a928b90ba5f4eba9cd37)) - - to cancel spell-casting - ([a1df41ad](watch/commits/a1df41ad8165cd9eb6d2d5d59c7fe404edde716c)) -- **stable:** show hatchable combo when petOwned>0 (fyi @deilann) - ([51bff238](watch/commits/51bff23885ca0080e7e71ff752daa0950ae923ae)) -- **stats:** Better layout for attribute point allocation - ([d782fc6b](watch/commits/d782fc6b6a3cd7e90d327c93a5764626b2990c74)) -- **swagger:** fix jade script warning in swagger - ([2e2fcfcf](watch/commits/2e2fcfcf464fbae21bff9e1be1ca915f071b976b)) -- **tests:** - - include select2 in test manifest - ([38b4cea7](watch/commits/38b4cea73299f51c4db7f6b2eb12533d219745f8)) - - don't use cluster in tests, else we get "connection refused" - ([7a479098](watch/commits/7a479098dc6535654e322c737d80813790967941)) -- **todos:** - - add migration for dateCreated & dateCompleted #2478 - ([4cc39f16](watch/commits/4cc39f16a13f5fb9f0e3ddde7d274c0f224f4a0e)) - - add dateCompleted to todos so they're archived 3 days after completion, not 3 days after creation. Fixes #2478 - ([b1afc177](watch/commits/b1afc177aa4bfc4cbd9b847e40431db91666d9c3)) -- **toolbar:** - - Tweak Settings drop-down - ([e241429c](watch/commits/e241429cc3d2eca18d2f5a9726f6caa6270a1b02)) - - Tweak icon popovers - ([4454204f](watch/commits/4454204f47f80e64119f7896bf246259173d115b)) - - tweaks - ([5501d57e](watch/commits/5501d57e107c0bc7085847b0c808f027360fa405)) -- **translation:** Fix #2585. - ([06200acc](watch/commits/06200accada462c3234ab407cfb0f6b684e5effe)) -- **translations:** - - fix #2564 and similar ones - ([42740902](watch/commits/42740902055a3807532028a5dfb39eff905c104f)) - - add env.t to rootScope - ([13131087](watch/commits/13131087ff9563d2d174b2c978102f0dc2b87387)) - - remove translations for privacy & terms - ([a9095f34](watch/commits/a9095f346479336be13b2bf341666b908fa30b3d)) - - merge @luveluen pull request, fix some syntax - ([a6c67f17](watch/commits/a6c67f17815558f19895b8f67d29c40c14689f09)) - - @lefnire now everything is ok - ([52decb7e](watch/commits/52decb7edeefb4755ea832b0cf63eaeea5e93259)) - - correct some variables - ([fba73953](watch/commits/fba739535bc1b630d73eb469448e9c3706043efd)) - - revert some views - ([d000c706](watch/commits/d000c70679ae0e13d9bec749295e42cc8e299c95)) -- **user:** - - make sure next is passed to all routes, and is available in err-back of batch updates - ([0c21f54c](watch/commits/0c21f54c67b52b07c417fd8216c6b04bce59d0ab)) - - if need to upgrade site, send 501, not 400 - ([ab86ba11](watch/commits/ab86ba11bdb3379a8d8fa1814879640d61c57227)) - - PUT user retricted path errors are 401, not 500 - ([0aec4caa](watch/commits/0aec4caa785c3b12e15f1c2e19c5b67b20d1a6e1)) -- **winston:** typo - ([83b3739f](watch/commits/83b3739f4671a08466e057242f936140d5c739ef)) - - -## Features - -- **administrators:** start adding features page for admin accounts - ([f7f4a0c1](watch/commits/f7f4a0c166558ba7e5461732f7bb6d7bcac25f88)) -- **attributes:** Add backfill button in flat and classbased allocation modes - ([76a7ab5b](watch/commits/76a7ab5bcce2d486dab3f447f0659ba870d1ff7e)) -- **bailey:** notif about STWC updates + scroll-purchase deadlines (@colegleason) - ([90176444](watch/commits/90176444e9c7a318040829e8b71d1493b5d58e9e)) -- **bug-crushing:** add the critical hammer of bug-crushing - ([00af5f7d](watch/commits/00af5f7d0258b0f7dddef8ede40bd825b057748a)) -- **challenges:** - - add angular-ui-select2 for simpler find/select challenge winner. - ([9fa45217](watch/commits/9fa452173989889c48ed696a45cf4a1dc16294a4)) - - add button for csv export - ([ae0d758d](watch/commits/ae0d758d8fc751219a693fee7f3e3ebcfbd67590)) - - add csv export for challenge progress. WIP, will refine this over time - but we need it something like this for the STWC come 1/31. - ([16a602f9](watch/commits/16a602f94c3b7c99d49e42b47b4835b65a243690)) - - markdown in challenge-descriptions - ([41233c7b](watch/commits/41233c7b167905eeccfdff5589789e002ec23f97)) -- **cheating:** prevent +habit spamming with a 10s timer - ([ad4ca665](watch/commits/ad4ca6655a3bdd870bb08173530372f81fdc9102)) -- **event-tracking:** - - better page-view tracking via ui-router - ([b093717b](watch/commits/b093717b8d54b61e5d4b44b0d56a1f43308f078c)) - - track registration count - ([72b6c9bc](watch/commits/72b6c9bc9189275909804f9ecab18e9fe1f69d27)) - - pass ga to server user.ops - ([9217b517](watch/commits/9217b5174ab9ab4754269263b214f6bfe45d4f1d)) - - track ecommerce events - ([d89fb17b](watch/commits/d89fb17b03b2e2c0fb1da77fb13cc660a5b6c9d1)) - - add server-side GA tracking for ecommerce events - ([f7b4a04a](watch/commits/f7b4a04a590ade26871abc726ade2c666176488e)) - - start adding some client-side GA event-tracking - ([ffb42906](watch/commits/ffb42906e1d7c6bd8f01e715d98d96426bc6d0de)) -- **groups:** add group chat notifications - ([ce82be63](watch/commits/ce82be637d1d707e899aeee5f315da69367fa367)) -- **habitBirthday:** add habitrpg birthday event. includes cakes for all pets, absurd party robes, npc swap, badge, etc. @lemoness - ([aff885c0](watch/commits/aff885c05c03bd70beeb0db8d68922671fc46309)) -- **homepage:** - - start cleaning up homepage, add navbar for play button & upcoming links - ([0ddaae4d](watch/commits/0ddaae4d7525277e696a57d20234e49cd6fd1cbc)) - - use .marketing for centering, add playbutton as static in footer. This is pretty ugly (http://gyazo.com/215e20729569689ab48cf56c71c1fe28), let's iterate / prettify. @deilann - ([47bcaf83](watch/commits/47bcaf83e760dbb266ae7ff2f7299c2a1cdf3712)) -- **marketing:** - - more copy for mobile - ([cbb44847](watch/commits/cbb448478edfd0003c43d20ed216bab20d25dadd)) - - start fleshing out the about page with images, content, etc. Create separate videos page - ([cb079977](watch/commits/cb079977e6f35f9308ab28158373dd3e1de9f798)) - - add video tuts on "learn more" page until we have some copy - ([5028707c](watch/commits/5028707c7b174b5e050c7c1662155e781a6b415b)) - - some frontpage updates, a screenshot, & "contact us" button mods - ([a582a054](watch/commits/a582a0546d680d36a21c507deff725a6c38fdb28)) -- **premium:** - - subscriber mystery item (doesn't yet do anything) - ([d0342628](watch/commits/d0342628340ce7dce95fa20177ccbcfe1ebf93e6)) - - backport server code for premium subs (it's just ccard handling & uer model stuff) - ([3660f1a8](watch/commits/3660f1a85c1447de118f334a145d0d7698b93981)) - - updates to group plans info page - ([66f95cdd](watch/commits/66f95cdd4cfb698fddc765a77b66d29e31eb1361)) - - backport client-side premium code to public repo, it's client-side anyway (@colegleason @paglias) - ([2e18f0eb](watch/commits/2e18f0eb82f5efc77544d33d1db3fbb9cc583124)) -- **quests:** - - add flags.levelDrops for dropping items at certain levels - ([78315d82](watch/commits/78315d828ba9a1033526b9a72b7c385281e6ad0a)) - - allow dropping scrolls in quests - ([54064deb](watch/commits/54064debf3c95390b5507acd826f9db3339b9f09)) - - allow html in quest notes - ([800231cf](watch/commits/800231cf6481351032d4e5143edd54f5e7e3a179)) - - add level requirement for quests - ([9e69d795](watch/commits/9e69d7959f174955f44429a94f22ce40fc5f7861)) - - add canBuy so we can exclude certain items from the market (if you can only find them on quest-drop, etc). This isn't the prettiest, change? - ([f16654d2](watch/commits/f16654d2354dc86cc7c52e1cf0562f850cf203be)) - - allow quests to drop multiple items - ([d9e5725e](watch/commits/d9e5725ee13f7e9ad329fc548537d5265cf483ca)) -- **rainbow-hair:** add rainbow hair colors - ([82d9233d](watch/commits/82d9233d99167d6704c878884dcc49a55cc7d884)) -- **restore:** add restore-gp back in. Parly to end the winter event, partly due to the convo at #2681 regarding subscriptions. Fixes #2681 - ([179316e1](watch/commits/179316e10fa7597b08573d94721861baa3dbbb1c)) -- **toolbar:** - - try with icons instead of text, test against prod / beta & get a vote. - ([7456f00d](watch/commits/7456f00dc6122ad293652b7a32fb4ce671f75241)) - - add toolbar featuring navigation, gems / subs, bailey, & chat / invite notifications - ([f72cb213](watch/commits/f72cb21300c078b439b3334bfa3e205ba04dc949)) -- **tracking:** gems > toolbar separately from wallet - ([f6abfc67](watch/commits/f6abfc67b31808c0e2d325c235747260855338c9)) -- **valentine:** valentine event - ([fd6eb872](watch/commits/fd6eb8724eae38d02849ffccb09f1f9c7d8e490d)) -- **winter:** - - remove purchasable winter hair colors, keep available if they purchased during event - ([f8796e90](watch/commits/f8796e9028d4f4cd2b5c5ede1734d2876d174dc9)) - - remove winter scrolls & snowballs - ([52f8f0d5](watch/commits/52f8f0d5b0fdf4271fcb5f7d497ad3bf544c24e8)) - - -## Docs - -- **rebirth:** Bullet point about repurchase of limited ed gear after Rebirth - From 506ac6ebe776502ddf3ebecb3f1a81876a17050d Mon Sep 17 00:00:00 2001 From: Taldin Date: Thu, 30 Oct 2014 12:35:40 -0700 Subject: [PATCH 04/58] added mountmaster support inventoryCtrl: Changed Matt to show 90 mounts instead of 180 notificationCtrl: added mountmaster achievement test userCtrl: added scope.profile.mountCount user.js: added fields for mountMaster and mountMasterCount (not used yet), mountCount function modals/achievements.jade - added modal dialog for mountmaster (note: wolf graphic was not available locally) profiles/achievements - jade - mountmaster added stats.jade -- uncommented broken Mounts Tamed section, since it works now --- public/js/controllers/inventoryCtrl.js | 3 ++- public/js/controllers/notificationCtrl.js | 12 ++++++++++++ public/js/controllers/userCtrl.js | 1 + src/models/user.js | 12 ++++++++++++ views/shared/modals/achievements.jade | 12 ++++++++++++ views/shared/profiles/achievements.jade | 8 ++++++++ views/shared/profiles/stats.jade | 8 +++++--- 7 files changed, 52 insertions(+), 4 deletions(-) diff --git a/public/js/controllers/inventoryCtrl.js b/public/js/controllers/inventoryCtrl.js index e1b47a47f0..c302de46d1 100644 --- a/public/js/controllers/inventoryCtrl.js +++ b/public/js/controllers/inventoryCtrl.js @@ -8,7 +8,8 @@ habitrpg.controller("InventoryCtrl", ['$rootScope', '$scope', '$window', 'User', $scope.selectedEgg = null; // {index: 1, name: "Tiger", value: 5} $scope.selectedPotion = null; // {index: 5, name: "Red", value: 3} $scope.totalPets = _.size(Content.dropEggs) * _.size(Content.hatchingPotions); - $scope.totalMounts = _.size(_.reject(Content.eggs,function(egg){return egg.noMount})) * _.size(Content.hatchingPotions); +// previously: $scope.totalMounts = _.size(_.reject(Content.eggs,function(egg){return egg.noMount})) * _.size(Content.hatchingPotions); + $scope.totalMounts = _.size(Content.dropEggs) * _.size(Content.hatchingPotions); // count egg, food, hatchingPotion stack totals var countStacks = function(items) { return _.reduce(items,function(m,v){return m+v;},0);} diff --git a/public/js/controllers/notificationCtrl.js b/public/js/controllers/notificationCtrl.js index d2436c03b4..5746299c4d 100644 --- a/public/js/controllers/notificationCtrl.js +++ b/public/js/controllers/notificationCtrl.js @@ -113,6 +113,18 @@ habitrpg.controller('NotificationCtrl', } }, true); + +//start mountmaster test + $rootScope.$watch('user.items.mounts', function(after, before){ + if(_.size(after) === _.size(before) || + Shared.countMounts(null, after) < 90) return; + if (User.user.achievements.mountMaster == false) { + User.user.achievements.mountMaster = true; + $rootScope.openModal('achievements/mountMaster'); + } + }, true); +// end mountmaster test + $rootScope.$watch('user.achievements.rebirths', function(after, before){ if(after === before) return; $rootScope.openModal('achievements/rebirth'); diff --git a/public/js/controllers/userCtrl.js b/public/js/controllers/userCtrl.js index 71f185c6ff..47735c3454 100644 --- a/public/js/controllers/userCtrl.js +++ b/public/js/controllers/userCtrl.js @@ -4,6 +4,7 @@ habitrpg.controller("UserCtrl", ['$rootScope', '$scope', '$location', 'User', '$ function($rootScope, $scope, $location, User, $http, $state, Guide, Shared) { $scope.profile = User.user; $scope.profile.petCount = Shared.countPets(null, $scope.profile.items.pets); + $scope.profile.mountCount = Shared.countMounts(null, $scope.profile.items.mounts); //added for mountmaster prep $scope.hideUserAvatar = function() { $(".userAvatar").hide(); }; diff --git a/src/models/user.js b/src/models/user.js index a0c5913045..25c848edb2 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -36,6 +36,8 @@ var UserSchema = new Schema({ ultimateGear: Boolean, beastMaster: Boolean, beastMasterCount: Number, + mountMaster: Boolean, + mountMasterCount: Number, veteran: Boolean, snowball: Number, spookDust: Number, @@ -412,6 +414,16 @@ UserSchema.pre('save', function(next) { if (petCount >= 90 || this.achievements.beastMasterCount > 0) { this.achievements.beastMaster = true } +// mountmaster stuff starts + var mountCount = shared.countMounts(_.reduce(this.items.mounts,function(m,v){ + //HOTFIX - Remove when solution is found, the first argument passed to reduce is a function + if(_.isFunction(v)) return m; + return m+(v?1:0)},0), this.items.mounts); + + if (mountCount >= 90 || this.achievements.mountMasterCount > 0) { + this.achievements.mountMaster = true + } +// mountmaster stuff ends // TODO remove this after 11/01 if (!this.items.pets['JackOLantern-Base'] && moment().isBefore('2014-11-01')) diff --git a/views/shared/modals/achievements.jade b/views/shared/modals/achievements.jade index 1315823510..a9df319e8d 100644 --- a/views/shared/modals/achievements.jade +++ b/views/shared/modals/achievements.jade @@ -29,6 +29,18 @@ script(id='modals/achievements/beastMaster.html', type='text/ng-template') .modal-footer button.btn.btn-default(ng-click='$close()')=env.t('ok') + +// Beast Master +script(id='modals/achievements/mountMaster.html', type='text/ng-template') + .modal-header + h4=env.t('modalAchievement') + .modal-body + p + .achievement.achievement-wolf + =env.t('mountAchievement') + .modal-footer + button.btn.btn-default(ng-click='$close()')=env.t('ok') + // Contributor // activated by user.flags.contributor script(id='modals/achievements/contributor.html', type='text/ng-template') diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index bc8689d17d..ac61999d44 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -87,6 +87,14 @@ div(ng-if='profile.achievements.beastMaster || user._id == profile._id') =env.t('beastMastText2', {count: "{{profile.achievements.beastMasterCount}}"}) hr +div(ng-if='profile.achievements.mountMaster || user._id == profile._id') + .achievement.achievement-rat(ng-show='profile.achievements.mountMaster') + div(ng-class='{muted: !profile.achievements.mountMaster}') + h5=env.t('mountMastName') + small=env.t('mountMastText') + =env.t('beastMastText2', {count: "{{profile.achievements.mountMasterCount}}"}) + hr + div(ng-if='profile.achievements.rebirths') .achievement.achievement-sun h5(ng-if='profile.achievements.rebirths == 1')=env.t('rebirthBegan') diff --git a/views/shared/profiles/stats.jade b/views/shared/profiles/stats.jade index 3a3e512c66..155c8fb9db 100644 --- a/views/shared/profiles/stats.jade +++ b/views/shared/profiles/stats.jade @@ -71,8 +71,10 @@ table.table.table-striped(ng-show='user.flags.dropsEnabled') td strong=env.t('petsFound') | : {{profile.petCount}} -// Dunno why this doesn't work // -// tr +// this works now // +h4(class=mobile?'item item-divider':'')=env.t('mounts') +table.table.table-striped(ng-show='user.flags.dropsEnabled') + tr td strong=env.t('mountsTamed') - | : {{profile.mountCount}} // + | : {{profile.mountCount}} From 6f459f33e4f39a391cc45450045d65681e92ed3b Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 11 Dec 2014 10:09:09 -0600 Subject: [PATCH 05/58] Added fields for total pet/mount count as well as achievment progress --- views/shared/profiles/stats.jade | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/views/shared/profiles/stats.jade b/views/shared/profiles/stats.jade index 155c8fb9db..2a54a9c7e9 100644 --- a/views/shared/profiles/stats.jade +++ b/views/shared/profiles/stats.jade @@ -70,11 +70,19 @@ table.table.table-striped(ng-show='user.flags.dropsEnabled') tr td strong=env.t('petsFound') - | : {{profile.petCount}} + | : {{_.size(user.items.pets)}} + tr + td + strong=env.t('beastProgress') + | : {{profile.petCount}}/90 // this works now // h4(class=mobile?'item item-divider':'')=env.t('mounts') table.table.table-striped(ng-show='user.flags.dropsEnabled') - tr + tr td strong=env.t('mountsTamed') - | : {{profile.mountCount}} + | : {{_.size(user.items.mounts)}} + tr + td + strong=env.t('mountProgress') + | : {{profile.mountCount}}/90 From 7172df7dbbbd275690211f3009e580968bc09403 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Wed, 31 Dec 2014 16:46:13 -0600 Subject: [PATCH 06/58] Corrected second half of mountmaster text to only show if mountmaster has been achieved at least once --- views/shared/profiles/achievements.jade | 1 + 1 file changed, 1 insertion(+) diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index 88702029a4..3b9a412cf6 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -92,6 +92,7 @@ div(ng-if='profile.achievements.mountMaster || user._id == profile._id') div(ng-class='{muted: !profile.achievements.mountMaster}') h5=env.t('mountMastName') small=env.t('mountMastText') + small(ng-if='profile.achievements.mountMasterCount') =env.t('beastMastText2', {count: "{{profile.achievements.mountMasterCount}}"}) hr From a45797a1ba4e580fb408c8083607763ab5b4095d Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 1 Jan 2015 17:06:34 -0600 Subject: [PATCH 07/58] Adjusted text in view to show mountMaster progress --- views/options/inventory/stable.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/options/inventory/stable.jade b/views/options/inventory/stable.jade index 6fa5b75aa8..fb7dfacd5c 100644 --- a/views/options/inventory/stable.jade +++ b/views/options/inventory/stable.jade @@ -41,7 +41,7 @@ script(type='text/ng-template', id='partials/options.inventory.mounts.html') a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch') .popover-content p=env.t('mattShall', {name: "{{user.profile.name}}"}) - h4= '{{Shared.countMounts(null,User.user.items.mounts) || 0}} / {{totalMounts}} ' + env.t('mountsTamed') + h4= env.t('mountmasterProgress') + ': {{Shared.countMounts(null,User.user.items.mounts) || 0}} / {{totalMounts}} ' + env.t('mountsTamed') .col-md-12 +mountList(env.Content.dropEggs) .col-md-12 From 488a53f1cf3dea379f45cb854a1e89943f32536f Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 1 Jan 2015 17:16:23 -0600 Subject: [PATCH 08/58] Corrected comment title --- views/shared/modals/achievements.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/modals/achievements.jade b/views/shared/modals/achievements.jade index a9df319e8d..8a05817966 100644 --- a/views/shared/modals/achievements.jade +++ b/views/shared/modals/achievements.jade @@ -30,7 +30,7 @@ script(id='modals/achievements/beastMaster.html', type='text/ng-template') button.btn.btn-default(ng-click='$close()')=env.t('ok') -// Beast Master +// Mount Master script(id='modals/achievements/mountMaster.html', type='text/ng-template') .modal-header h4=env.t('modalAchievement') From 71a2ef91ca4ce99fdb09d62a9be278cb91fc38c1 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 1 Jan 2015 20:52:55 -0600 Subject: [PATCH 09/58] Fixed modals from not popping up when beastMaster and mountMaster achieved --- public/js/controllers/notificationCtrl.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/js/controllers/notificationCtrl.js b/public/js/controllers/notificationCtrl.js index 12fef91c74..5e6fc38087 100644 --- a/public/js/controllers/notificationCtrl.js +++ b/public/js/controllers/notificationCtrl.js @@ -104,26 +104,26 @@ habitrpg.controller('NotificationCtrl', $rootScope.openModal('achievements/ultimateGear'); }); + // Watches number of pets and displays beastMaster modal when 90 are found $rootScope.$watch('user.items.pets', function(after, before){ if(_.size(after) === _.size(before) || Shared.countPets(null, after) < 90) return; - if (User.user.achievements.beastMaster == false) { + if (User.user.achievements.beastMaster == undefined) { User.user.achievements.beastMaster = true; $rootScope.openModal('achievements/beastMaster'); } }, true); -//start mountmaster test + // Watches number of mounts and displays mountMaster modal when 90 are raised $rootScope.$watch('user.items.mounts', function(after, before){ if(_.size(after) === _.size(before) || Shared.countMounts(null, after) < 90) return; - if (User.user.achievements.mountMaster == false) { + if (User.user.achievements.mountMaster == undefined) { User.user.achievements.mountMaster = true; $rootScope.openModal('achievements/mountMaster'); } }, true); -// end mountmaster test $rootScope.$watch('user.achievements.rebirths', function(after, before){ if(after === before) return; From 04a12542e59b6f5f8e03e9291fb78bc972d6bff1 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 1 Jan 2015 21:17:58 -0600 Subject: [PATCH 10/58] Corrected the achievemnts page to show the right medal for mountmaster --- views/shared/profiles/achievements.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index 3b9a412cf6..a144835fee 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -88,7 +88,7 @@ div(ng-if='profile.achievements.beastMaster || user._id == profile._id') hr div(ng-if='profile.achievements.mountMaster || user._id == profile._id') - .achievement.achievement-rat(ng-show='profile.achievements.mountMaster') + .achievement.achievement-wolf(ng-show='profile.achievements.mountMaster') div(ng-class='{muted: !profile.achievements.mountMaster}') h5=env.t('mountMastName') small=env.t('mountMastText') From 08d13660fbddf22a75eab2cc1e9ad4b62ff2fcd3 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 1 Jan 2015 21:21:53 -0600 Subject: [PATCH 11/58] Hid mounts area in stats until dropx enabled --- views/shared/profiles/stats.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/profiles/stats.jade b/views/shared/profiles/stats.jade index 2a54a9c7e9..fe20821c71 100644 --- a/views/shared/profiles/stats.jade +++ b/views/shared/profiles/stats.jade @@ -76,7 +76,7 @@ table.table.table-striped(ng-show='user.flags.dropsEnabled') strong=env.t('beastProgress') | : {{profile.petCount}}/90 // this works now // -h4(class=mobile?'item item-divider':'')=env.t('mounts') +h4(class=mobile?'item item-divider':'', ng-if='user.flags.dropsEnabled')=env.t('mounts') table.table.table-striped(ng-show='user.flags.dropsEnabled') tr td From e219c0d1109d5de87c304cf000044af60d87bd83 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 1 Jan 2015 21:23:05 -0600 Subject: [PATCH 12/58] Corrected mountmasterProgress variable name --- views/shared/profiles/stats.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/profiles/stats.jade b/views/shared/profiles/stats.jade index fe20821c71..e53dd905f9 100644 --- a/views/shared/profiles/stats.jade +++ b/views/shared/profiles/stats.jade @@ -84,5 +84,5 @@ table.table.table-striped(ng-show='user.flags.dropsEnabled') | : {{_.size(user.items.mounts)}} tr td - strong=env.t('mountProgress') + strong=env.t('mountmasterProgress') | : {{profile.mountCount}}/90 From f2d62784f4062f6e16b4b5c8efacd7851d93f8ab Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 1 Jan 2015 21:23:39 -0600 Subject: [PATCH 13/58] Converted ng-show to ng-if --- views/shared/profiles/stats.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/profiles/stats.jade b/views/shared/profiles/stats.jade index e53dd905f9..d22e372e2e 100644 --- a/views/shared/profiles/stats.jade +++ b/views/shared/profiles/stats.jade @@ -65,7 +65,7 @@ table.table.table-striped strong.hint(popover-title=env.t('streaksFrozen'), popover-trigger='mouseenter', popover-placement='right', popover=env.t('streaksFrozenText'))=env.t('streaksFrozen') td -h4(class=mobile?'item item-divider':'',ng-show='user.flags.dropsEnabled')=env.t('pets') +h4(class=mobile?'item item-divider':'',ng-if='user.flags.dropsEnabled')=env.t('pets') table.table.table-striped(ng-show='user.flags.dropsEnabled') tr td From e2403c52ad6389904e2f2e2ab2a51dfc257876c6 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 1 Jan 2015 21:24:21 -0600 Subject: [PATCH 14/58] Converted more ng-shows to ng-ifs --- views/shared/profiles/stats.jade | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/views/shared/profiles/stats.jade b/views/shared/profiles/stats.jade index d22e372e2e..c7b1cacc47 100644 --- a/views/shared/profiles/stats.jade +++ b/views/shared/profiles/stats.jade @@ -66,7 +66,7 @@ table.table.table-striped td h4(class=mobile?'item item-divider':'',ng-if='user.flags.dropsEnabled')=env.t('pets') -table.table.table-striped(ng-show='user.flags.dropsEnabled') +table.table.table-striped(ng-if='user.flags.dropsEnabled') tr td strong=env.t('petsFound') @@ -75,9 +75,9 @@ table.table.table-striped(ng-show='user.flags.dropsEnabled') td strong=env.t('beastProgress') | : {{profile.petCount}}/90 -// this works now // + h4(class=mobile?'item item-divider':'', ng-if='user.flags.dropsEnabled')=env.t('mounts') -table.table.table-striped(ng-show='user.flags.dropsEnabled') +table.table.table-striped(ng-if='user.flags.dropsEnabled') tr td strong=env.t('mountsTamed') From 6807368c5c441d4688431e05cd0843731b28aa23 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 1 Jan 2015 21:29:27 -0600 Subject: [PATCH 15/58] Removed comment --- public/js/controllers/inventoryCtrl.js | 1 - 1 file changed, 1 deletion(-) diff --git a/public/js/controllers/inventoryCtrl.js b/public/js/controllers/inventoryCtrl.js index eefee1b4df..99f5a6e3ed 100644 --- a/public/js/controllers/inventoryCtrl.js +++ b/public/js/controllers/inventoryCtrl.js @@ -8,7 +8,6 @@ habitrpg.controller("InventoryCtrl", ['$rootScope', '$scope', '$window', 'User', $scope.selectedEgg = null; // {index: 1, name: "Tiger", value: 5} $scope.selectedPotion = null; // {index: 5, name: "Red", value: 3} $scope.totalPets = _.size(Content.dropEggs) * _.size(Content.hatchingPotions); -// previously: $scope.totalMounts = _.size(_.reject(Content.eggs,function(egg){return egg.noMount})) * _.size(Content.hatchingPotions); $scope.totalMounts = _.size(Content.dropEggs) * _.size(Content.hatchingPotions); // count egg, food, hatchingPotion stack totals From 7f2648eafbeb861c4885ba816ee4fee0021809be Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 2 Jan 2015 12:43:40 -0600 Subject: [PATCH 16/58] Renamed release scripts --- public/js/controllers/settingsCtrl.js | 8 ++++---- views/shared/modals/drops.jade | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/public/js/controllers/settingsCtrl.js b/public/js/controllers/settingsCtrl.js index a7927d5d0c..4b9e7e6cd2 100644 --- a/public/js/controllers/settingsCtrl.js +++ b/public/js/controllers/settingsCtrl.js @@ -155,13 +155,13 @@ habitrpg.controller('SettingsCtrl', window.location.href = '/api/v2/coupons?limit='+codes.count+'&_id='+User.user._id+'&apiToken='+User.user.apiToken; }) } - $scope.release = function() { - User.user.ops.release({}); + $scope.releasePets = function() { + User.user.ops.releasePets({}); $rootScope.$state.go('tasks'); } - $scope.release2 = function() { - User.user.ops.release2({}); + $scope.releaseMounts = function() { + User.user.ops.releaseMounts({}); $rootScope.$state.go('tasks'); } diff --git a/views/shared/modals/drops.jade b/views/shared/modals/drops.jade index 38ed79208a..5f4adc5095 100644 --- a/views/shared/modals/drops.jade +++ b/views/shared/modals/drops.jade @@ -32,9 +32,9 @@ script(type='text/ng-template', id='modals/pet-key.html') a.btn.btn-success(ng-click='openModal("buyGems")')=env.t('buyMoreGems') span.gem-cost=env.t('notEnoughGems') span(ng-if='user.balance >= 1', ng-controller='SettingsCtrl') - a.btn.btn-danger(ng-click='$close(); release()')=env.t('petKeyPets') + a.btn.btn-danger(ng-click='$close(); releasePets()')=env.t('petKeyPets') span(ng-if='user.balance >= 1', ng-controller='SettingsCtrl') - a.btn.btn-danger(ng-click='$close(); release2()')=env.t('petKeyMounts') + a.btn.btn-danger(ng-click='$close(); releaseMounts()')=env.t('petKeyMounts') span.gem-cost | 4  - =env.t('gemsEach') \ No newline at end of file + =env.t('gemsEach') From 1049e5e1527c0e2247d190eb5b3227fb3ba719ea Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 2 Jan 2015 13:08:45 -0600 Subject: [PATCH 17/58] Key shows up when you have either 90 pets or 90 mounts. Opens lg modal --- views/options/inventory/inventory.jade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/views/options/inventory/inventory.jade b/views/options/inventory/inventory.jade index 27ff9a6c52..c188068ce1 100644 --- a/views/options/inventory/inventory.jade +++ b/views/options/inventory/inventory.jade @@ -221,8 +221,8 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html') p(ng-show='user.stats.lvl < 100') | 8 span.Pet_Currency_Gem1x.inline-gems - div(ng-show='petCount >= 90') - button.customize-option(popover=env.t('petKeyPop'), popover-title=env.t('petKeyName'), popover-trigger='mouseenter', popover-placement='top', ng-click='openModal("pet-key")', class='pet_key') + div(ng-show='petCount >= 90 || mountCount >= 90') + button.customize-option(popover=env.t('petKeyPop'), popover-title=env.t('petKeyName'), popover-trigger='mouseenter', popover-placement='top', ng-click='openModal("pet-key", {size:"lg"})', class='pet_key') p | 4 span.Pet_Currency_Gem1x.inline-gems From 406edcb761f4dc570f43a1eb95083948f368ad1f Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 2 Jan 2015 13:33:41 -0600 Subject: [PATCH 18/58] Added releaseBoth script and refactored keys to the kennel modal --- public/js/controllers/settingsCtrl.js | 5 +++++ views/shared/modals/drops.jade | 22 +++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/public/js/controllers/settingsCtrl.js b/public/js/controllers/settingsCtrl.js index 4b9e7e6cd2..f3c4623c2b 100644 --- a/public/js/controllers/settingsCtrl.js +++ b/public/js/controllers/settingsCtrl.js @@ -165,6 +165,11 @@ habitrpg.controller('SettingsCtrl', $rootScope.$state.go('tasks'); } + $scope.releaseBoth = function() { + User.user.ops.releaseBoth({}); + $rootScope.$state.go('tasks'); + } + // ---- Webhooks ------ $scope._newWebhook = {url:''}; $scope.$watch('user.preferences.webhooks',function(webhooks){ diff --git a/views/shared/modals/drops.jade b/views/shared/modals/drops.jade index 5f4adc5095..d79feca7b0 100644 --- a/views/shared/modals/drops.jade +++ b/views/shared/modals/drops.jade @@ -31,10 +31,18 @@ script(type='text/ng-template', id='modals/pet-key.html') span(ng-if='user.balance < 1') a.btn.btn-success(ng-click='openModal("buyGems")')=env.t('buyMoreGems') span.gem-cost=env.t('notEnoughGems') - span(ng-if='user.balance >= 1', ng-controller='SettingsCtrl') - a.btn.btn-danger(ng-click='$close(); releasePets()')=env.t('petKeyPets') - span(ng-if='user.balance >= 1', ng-controller='SettingsCtrl') - a.btn.btn-danger(ng-click='$close(); releaseMounts()')=env.t('petKeyMounts') - span.gem-cost - | 4  - =env.t('gemsEach') + span(ng-if='user.balance >= 1 && user.petCount >= 90', ng-controller='SettingsCtrl') + a.btn.btn-danger(ng-click='$close(); releasePets()') + =env.t('petKeyPets') + | : 4  + span.Pet_Currency_Gem1x.inline-gems + span(ng-if='user.balance >= 1 && user.mountCount >= 90', ng-controller='SettingsCtrl') + a.btn.btn-danger(ng-click='$close(); releaseMounts()') + =env.t('petKeyMounts') + | : 4  + span.Pet_Currency_Gem1x.inline-gems + span(ng-if='user.balance >= 1 && user.petCount >= 90 && user.mountCount >= 90', ng-controller='SettingsCtrl') + a.btn.btn-danger(ng-click='$close(); releaseBoth()') + =env.t('petKeyBoth') + | : 6  + span.Pet_Currency_Gem1x.inline-gems From 87d78618d849a7f9014e977a7ed28ad8fbf7d106 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 2 Jan 2015 13:46:21 -0600 Subject: [PATCH 19/58] Changed keys of the kennel npc to Matt --- views/shared/modals/drops.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/modals/drops.jade b/views/shared/modals/drops.jade index d79feca7b0..463200f9a1 100644 --- a/views/shared/modals/drops.jade +++ b/views/shared/modals/drops.jade @@ -20,7 +20,7 @@ script(type='text/ng-template', id='modals/pet-key.html') .modal-body include ../gems figure - .npc_alex + .npc_matt p=env.t('petKeyInfo') br p=env.t('petKeyInfo2') From b69182f777b04a9c0453b165668f1fa1e943eaa8 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 2 Jan 2015 14:10:52 -0600 Subject: [PATCH 20/58] Added mountCount variable for easy access --- public/js/controllers/rootCtrl.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/js/controllers/rootCtrl.js b/public/js/controllers/rootCtrl.js index 5065a93eb2..1d5513e90c 100644 --- a/public/js/controllers/rootCtrl.js +++ b/public/js/controllers/rootCtrl.js @@ -89,6 +89,7 @@ habitrpg.controller("RootCtrl", ['$scope', '$rootScope', '$location', 'User', '$ $rootScope.countExists = function(items) {return _.reduce(items,function(m,v){return m+(v?1:0)},0)} $rootScope.petCount = Shared.countPets(null, User.user.items.pets); + $rootScope.mountCount = Shared.countMounts(null, User.user.items.mounts); $rootScope.$watch('user.items.pets', function(pets){ $rootScope.petCount = Shared.countPets($rootScope.countExists(pets), User.user.items.pets); From 3c3bbcafb926cc3878517e525e27d87a8f08046c Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 2 Jan 2015 14:11:04 -0600 Subject: [PATCH 21/58] Simplified count in stable --- views/options/inventory/stable.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/options/inventory/stable.jade b/views/options/inventory/stable.jade index fb7dfacd5c..42c2ad9c25 100644 --- a/views/options/inventory/stable.jade +++ b/views/options/inventory/stable.jade @@ -41,7 +41,7 @@ script(type='text/ng-template', id='partials/options.inventory.mounts.html') a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch') .popover-content p=env.t('mattShall', {name: "{{user.profile.name}}"}) - h4= env.t('mountmasterProgress') + ': {{Shared.countMounts(null,User.user.items.mounts) || 0}} / {{totalMounts}} ' + env.t('mountsTamed') + h4= env.t('mountmasterProgress') + ': {{mountCount}} / {{totalMounts}} ' + env.t('mountsTamed') .col-md-12 +mountList(env.Content.dropEggs) .col-md-12 From 68e613c3fc20e003284fc6bbdc9873b4afc2ce57 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 2 Jan 2015 14:11:59 -0600 Subject: [PATCH 22/58] Simplified count checks in keys to the kennel modal. Adjusted balance for releaseBoth to be correct --- views/shared/modals/drops.jade | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/views/shared/modals/drops.jade b/views/shared/modals/drops.jade index 463200f9a1..b32d40f6e2 100644 --- a/views/shared/modals/drops.jade +++ b/views/shared/modals/drops.jade @@ -31,17 +31,17 @@ script(type='text/ng-template', id='modals/pet-key.html') span(ng-if='user.balance < 1') a.btn.btn-success(ng-click='openModal("buyGems")')=env.t('buyMoreGems') span.gem-cost=env.t('notEnoughGems') - span(ng-if='user.balance >= 1 && user.petCount >= 90', ng-controller='SettingsCtrl') + span(ng-if='user.balance >= 1 && petCount >= 90', ng-controller='SettingsCtrl') a.btn.btn-danger(ng-click='$close(); releasePets()') =env.t('petKeyPets') | : 4  span.Pet_Currency_Gem1x.inline-gems - span(ng-if='user.balance >= 1 && user.mountCount >= 90', ng-controller='SettingsCtrl') + span(ng-if='user.balance >= 1 && mountCount >= 90', ng-controller='SettingsCtrl') a.btn.btn-danger(ng-click='$close(); releaseMounts()') =env.t('petKeyMounts') | : 4  span.Pet_Currency_Gem1x.inline-gems - span(ng-if='user.balance >= 1 && user.petCount >= 90 && user.mountCount >= 90', ng-controller='SettingsCtrl') + span(ng-if='user.balance >= 1.5 && petCount >= 90 && mountCount >= 90', ng-controller='SettingsCtrl') a.btn.btn-danger(ng-click='$close(); releaseBoth()') =env.t('petKeyBoth') | : 6  From 45c045e8537f139398fa6134d0bafe71b76f86be Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 2 Jan 2015 14:16:40 -0600 Subject: [PATCH 23/58] Corrected which string was being used in achievements --- views/shared/profiles/achievements.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index a144835fee..5ee9f69820 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -93,7 +93,7 @@ div(ng-if='profile.achievements.mountMaster || user._id == profile._id') h5=env.t('mountMastName') small=env.t('mountMastText') small(ng-if='profile.achievements.mountMasterCount') - =env.t('beastMastText2', {count: "{{profile.achievements.mountMasterCount}}"}) + =env.t('mountMastText2', {count: "{{profile.achievements.mountMasterCount}}"}) hr div(ng-if='profile.achievements.rebirths') From 19fc403b2fbb994fed671110f8b9da2e07b8df98 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 2 Jan 2015 15:26:16 -0600 Subject: [PATCH 24/58] Clarified comments in user model --- src/models/user.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/models/user.js b/src/models/user.js index 3f7b0b3d3e..91d1740ed8 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -430,6 +430,7 @@ UserSchema.pre('save', function(next) { 'Anonymous'; } + // Determines if Beast Master should be awarded var petCount = shared.countPets(_.reduce(this.items.pets,function(m,v){ //HOTFIX - Remove when solution is found, the first argument passed to reduce is a function if(_.isFunction(v)) return m; @@ -438,8 +439,9 @@ UserSchema.pre('save', function(next) { if (petCount >= 90 || this.achievements.beastMasterCount > 0) { this.achievements.beastMaster = true } -// mountmaster stuff starts - var mountCount = shared.countMounts(_.reduce(this.items.mounts,function(m,v){ + + // Determines if Mount Master should be awarded + var mountCount = shared.countMounts(_.reduce(this.items.mounts,function(m,v){ //HOTFIX - Remove when solution is found, the first argument passed to reduce is a function if(_.isFunction(v)) return m; return m+(v?1:0)},0), this.items.mounts); @@ -447,7 +449,7 @@ UserSchema.pre('save', function(next) { if (mountCount >= 90 || this.achievements.mountMasterCount > 0) { this.achievements.mountMaster = true } -// mountmaster stuff ends + // EXAMPLE CODE for allowing all existing and new players to be // automatically granted an item during a certain time period: From e1494b386076276a7405ddce8cc1f7b5892625a8 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 2 Jan 2015 18:51:51 -0600 Subject: [PATCH 25/58] Added Shared as one of the injections --- public/js/controllers/inventoryCtrl.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/public/js/controllers/inventoryCtrl.js b/public/js/controllers/inventoryCtrl.js index 99f5a6e3ed..0a71510508 100644 --- a/public/js/controllers/inventoryCtrl.js +++ b/public/js/controllers/inventoryCtrl.js @@ -1,5 +1,6 @@ -habitrpg.controller("InventoryCtrl", ['$rootScope', '$scope', '$window', 'User', 'Content', - function($rootScope, $scope, $window, User, Content) { +habitrpg.controller("InventoryCtrl", + ['$rootScope', '$scope', 'Shared', '$window', 'User', 'Content', + function($rootScope, $scope, Shared, $window, User, Content) { var user = User.user; From 9b82da064f00b55bc06b7167657be30c016d9db6 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 2 Jan 2015 18:52:25 -0600 Subject: [PATCH 26/58] Moved the beastMaster modal alert from notifications to inside the hatching function --- public/js/controllers/inventoryCtrl.js | 7 +++++++ public/js/controllers/notificationCtrl.js | 11 ----------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/public/js/controllers/inventoryCtrl.js b/public/js/controllers/inventoryCtrl.js index 0a71510508..557f4a24d5 100644 --- a/public/js/controllers/inventoryCtrl.js +++ b/public/js/controllers/inventoryCtrl.js @@ -85,6 +85,13 @@ habitrpg.controller("InventoryCtrl", user.ops.hatch({params:{egg:egg.key, hatchingPotion:potion.key}}); $scope.selectedEgg = null; $scope.selectedPotion = null; + + // Checks if beastmaster has been reached for the first time + if(!User.user.achievements.beastMaster + && Shared.countPets(null, User.user.items.pets) >= 90) { + User.user.achievements.beastMaster = true; + $rootScope.openModal('achievements/beastMaster'); + } } $scope.purchase = function(type, item){ diff --git a/public/js/controllers/notificationCtrl.js b/public/js/controllers/notificationCtrl.js index 5e6fc38087..9d21ffbed5 100644 --- a/public/js/controllers/notificationCtrl.js +++ b/public/js/controllers/notificationCtrl.js @@ -104,17 +104,6 @@ habitrpg.controller('NotificationCtrl', $rootScope.openModal('achievements/ultimateGear'); }); - // Watches number of pets and displays beastMaster modal when 90 are found - $rootScope.$watch('user.items.pets', function(after, before){ - if(_.size(after) === _.size(before) || - Shared.countPets(null, after) < 90) return; - if (User.user.achievements.beastMaster == undefined) { - User.user.achievements.beastMaster = true; - $rootScope.openModal('achievements/beastMaster'); - } - }, true); - - // Watches number of mounts and displays mountMaster modal when 90 are raised $rootScope.$watch('user.items.mounts', function(after, before){ if(_.size(after) === _.size(before) || From 6441888d3fd1abf54ed0d48346fd6c522f95fd1f Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 2 Jan 2015 19:09:50 -0600 Subject: [PATCH 27/58] Moved mountMaster watch to feeding function --- public/js/controllers/inventoryCtrl.js | 7 +++++++ public/js/controllers/notificationCtrl.js | 10 ---------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/public/js/controllers/inventoryCtrl.js b/public/js/controllers/inventoryCtrl.js index 557f4a24d5..e8809171ea 100644 --- a/public/js/controllers/inventoryCtrl.js +++ b/public/js/controllers/inventoryCtrl.js @@ -132,6 +132,13 @@ habitrpg.controller("InventoryCtrl", User.user.ops.feed({params:{pet: pet, food: food.key}}); $scope.selectedFood = null; + // Checks if mountmaster has been reached for the first time + if(!User.user.achievements.mountMaster + && Shared.countMounts(null, User.user.items.mounts) >= 90) { + User.user.achievements.mountMaster = true; + $rootScope.openModal('achievements/mountMaster'); + } + // Selecting Pet } else { User.user.ops.equip({params:{type: 'pet', key: pet}}); diff --git a/public/js/controllers/notificationCtrl.js b/public/js/controllers/notificationCtrl.js index 9d21ffbed5..dae22b9d0f 100644 --- a/public/js/controllers/notificationCtrl.js +++ b/public/js/controllers/notificationCtrl.js @@ -104,16 +104,6 @@ habitrpg.controller('NotificationCtrl', $rootScope.openModal('achievements/ultimateGear'); }); - // Watches number of mounts and displays mountMaster modal when 90 are raised - $rootScope.$watch('user.items.mounts', function(after, before){ - if(_.size(after) === _.size(before) || - Shared.countMounts(null, after) < 90) return; - if (User.user.achievements.mountMaster == undefined) { - User.user.achievements.mountMaster = true; - $rootScope.openModal('achievements/mountMaster'); - } - }, true); - $rootScope.$watch('user.achievements.rebirths', function(after, before){ if(after === before) return; $rootScope.openModal('achievements/rebirth'); From 7f20ca7d8b24b0062f97bcffc049560787f452b9 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 10 Jan 2015 08:26:11 -0600 Subject: [PATCH 28/58] Made title dynamic --- views/shared/modals/drops.jade | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/views/shared/modals/drops.jade b/views/shared/modals/drops.jade index baacb95a57..de474c756a 100644 --- a/views/shared/modals/drops.jade +++ b/views/shared/modals/drops.jade @@ -16,7 +16,10 @@ script(type='text/ng-template', id='modals/dropsEnabled.html') script(type='text/ng-template', id='modals/pet-key.html') .modal-header - h4=env.t('petKeyBegin') + // Checks if user has 90 pets and 90 mounts. If so, displays "Beast Master/Mount Master". + // Else if user has 90 pets, displays "Beast Master". Else, displays "Mount Master" + - var masterTitle='{{petCount >= 90 && mountCount >= 90 ? env.t("beastMastName") + "/" + env.t("mountMastName") : petCount >= 90 ? env.t("beastMastName") : env.t("mountMastName")}}' + h4=env.t('petKeyBegin', {title: masterTitle}) .modal-body +gemButton figure From c6ef4b52ab20ce9584b9412aeab778da180b0fca Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 10 Jan 2015 09:03:59 -0600 Subject: [PATCH 29/58] The inventory controllers watch on mounts was creating an inaccurate count (was counting quest and special mounts) --- public/js/controllers/inventoryCtrl.js | 1 - 1 file changed, 1 deletion(-) diff --git a/public/js/controllers/inventoryCtrl.js b/public/js/controllers/inventoryCtrl.js index e8809171ea..ce7ec1700f 100644 --- a/public/js/controllers/inventoryCtrl.js +++ b/public/js/controllers/inventoryCtrl.js @@ -14,7 +14,6 @@ habitrpg.controller("InventoryCtrl", // count egg, food, hatchingPotion stack totals var countStacks = function(items) { return _.reduce(items,function(m,v){return m+v;},0);} - $scope.$watch('user.items.mounts', function(mounts){ $scope.mountCount = $rootScope.countExists(mounts); }, true); $scope.$watch('user.items.eggs', function(eggs){ $scope.eggCount = countStacks(eggs); }, true); $scope.$watch('user.items.hatchingPotions', function(pots){ $scope.potCount = countStacks(pots); }, true); $scope.$watch('user.items.food', function(food){ $scope.foodCount = countStacks(food); }, true); From a5d6c9de3f9dfb4137ae09b815ac70992b195a83 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 10 Jan 2015 09:22:53 -0600 Subject: [PATCH 30/58] Force update of mountCount after feedling --- public/js/controllers/inventoryCtrl.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/js/controllers/inventoryCtrl.js b/public/js/controllers/inventoryCtrl.js index ce7ec1700f..f82781ac57 100644 --- a/public/js/controllers/inventoryCtrl.js +++ b/public/js/controllers/inventoryCtrl.js @@ -130,6 +130,7 @@ habitrpg.controller("InventoryCtrl", } User.user.ops.feed({params:{pet: pet, food: food.key}}); $scope.selectedFood = null; + $rootScope.mountCount = Shared.countMounts(null, User.user.items.mounts); // Checks if mountmaster has been reached for the first time if(!User.user.achievements.mountMaster From 0f3d6bc7515185df3acbd17740b04c0ac68bd845 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 10 Jan 2015 09:24:30 -0600 Subject: [PATCH 31/58] Explicitly reset mountCount to 0. (Otherwise, will not reset until refresh) --- public/js/controllers/settingsCtrl.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/js/controllers/settingsCtrl.js b/public/js/controllers/settingsCtrl.js index f3c4623c2b..4bb9bbc590 100644 --- a/public/js/controllers/settingsCtrl.js +++ b/public/js/controllers/settingsCtrl.js @@ -162,6 +162,7 @@ habitrpg.controller('SettingsCtrl', $scope.releaseMounts = function() { User.user.ops.releaseMounts({}); + $rootScope.mountCount = 0; $rootScope.$state.go('tasks'); } From 1c0520c94d33b6f2161d1402cb93576adc6c44d1 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 10 Jan 2015 09:38:03 -0600 Subject: [PATCH 32/58] Removed link to picture of all pets, since it is now inaccurate and there is no corresponding one for mounts --- views/options/inventory/stable.jade | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/views/options/inventory/stable.jade b/views/options/inventory/stable.jade index 42c2ad9c25..6c0380b442 100644 --- a/views/options/inventory/stable.jade +++ b/views/options/inventory/stable.jade @@ -66,12 +66,7 @@ script(type='text/ng-template', id='partials/options.inventory.pets.html') h3.popover-title a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch') .popover-content - p - =env.t('mattBochText1') + ' ' - | - =env.t('mattBochText2') - | - = ' ' + env.t('mattBochText3') + p=env.t('mattBochText1') h4= env.t('beastmasterProgress') + ': {{petCount}} / {{totalPets}} ' + env.t('petsFound') .col-md-12 From 819ab0b6e13801c2ca7c57adff5938ee8e48c009 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 10 Jan 2015 09:52:09 -0600 Subject: [PATCH 33/58] Added updated mountCount to releaseBoth function --- public/js/controllers/settingsCtrl.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/js/controllers/settingsCtrl.js b/public/js/controllers/settingsCtrl.js index 4bb9bbc590..8b6f95b696 100644 --- a/public/js/controllers/settingsCtrl.js +++ b/public/js/controllers/settingsCtrl.js @@ -168,6 +168,7 @@ habitrpg.controller('SettingsCtrl', $scope.releaseBoth = function() { User.user.ops.releaseBoth({}); + $rootScope.mountCount = 0; $rootScope.$state.go('tasks'); } From 1e11947c9e34c701d5a49e1108c5b84cadca359c Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 10 Jan 2015 09:52:51 -0600 Subject: [PATCH 34/58] Removed unnecessary comment --- public/js/controllers/userCtrl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/js/controllers/userCtrl.js b/public/js/controllers/userCtrl.js index 47735c3454..517d108605 100644 --- a/public/js/controllers/userCtrl.js +++ b/public/js/controllers/userCtrl.js @@ -4,7 +4,7 @@ habitrpg.controller("UserCtrl", ['$rootScope', '$scope', '$location', 'User', '$ function($rootScope, $scope, $location, User, $http, $state, Guide, Shared) { $scope.profile = User.user; $scope.profile.petCount = Shared.countPets(null, $scope.profile.items.pets); - $scope.profile.mountCount = Shared.countMounts(null, $scope.profile.items.mounts); //added for mountmaster prep + $scope.profile.mountCount = Shared.countMounts(null, $scope.profile.items.mounts); $scope.hideUserAvatar = function() { $(".userAvatar").hide(); }; From 09c3b643bd5a954b9094aaf7f76397474c310dda Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 10 Jan 2015 09:54:49 -0600 Subject: [PATCH 35/58] Removed comment because bug was fixed --- views/shared/profiles/stats.jade | 1 - 1 file changed, 1 deletion(-) diff --git a/views/shared/profiles/stats.jade b/views/shared/profiles/stats.jade index c7b1cacc47..d2bb8f1568 100644 --- a/views/shared/profiles/stats.jade +++ b/views/shared/profiles/stats.jade @@ -21,7 +21,6 @@ table.table.table-striped unless mobile h4.stats-equipment(class=mobile?'item item-divider':'',ng-show='user.flags.itemsEnabled')=env.t('equipment') table.table.table-striped(ng-show='user.flags.itemsEnabled') - // FIXME this isn't refreshing properly. On first party modal, correct. Second party modal click gives the previous gear. It's always one behind. tr(ng-repeat='(k,v) in profile.items.gear.equipped', ng-init='piece=Content.gear.flat[v]', ng-show='piece') td strong {{piece.text()}}:  From 11f20555c4d3451e685a5a1f718cd3c615db6af5 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sun, 11 Jan 2015 17:23:30 -0600 Subject: [PATCH 36/58] Corrected stats page to show profile data instead of user data --- views/shared/profiles/stats.jade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/views/shared/profiles/stats.jade b/views/shared/profiles/stats.jade index d2bb8f1568..bf472e3088 100644 --- a/views/shared/profiles/stats.jade +++ b/views/shared/profiles/stats.jade @@ -69,7 +69,7 @@ table.table.table-striped(ng-if='user.flags.dropsEnabled') tr td strong=env.t('petsFound') - | : {{_.size(user.items.pets)}} + | : {{_.size(profile.items.pets)}} tr td strong=env.t('beastProgress') @@ -80,7 +80,7 @@ table.table.table-striped(ng-if='user.flags.dropsEnabled') tr td strong=env.t('mountsTamed') - | : {{_.size(user.items.mounts)}} + | : {{_.size(profile.items.mounts)}} tr td strong=env.t('mountmasterProgress') From f6885427a84899aee6bfb85d59b17d561b86ce3b Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sun, 11 Jan 2015 17:24:01 -0600 Subject: [PATCH 37/58] Corrected Beast Master and Mount Master count so it would be accurate. --- public/js/controllers/groupsCtrl.js | 3 ++- public/js/controllers/userCtrl.js | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/public/js/controllers/groupsCtrl.js b/public/js/controllers/groupsCtrl.js index fe30af9239..da6f964683 100644 --- a/public/js/controllers/groupsCtrl.js +++ b/public/js/controllers/groupsCtrl.js @@ -116,7 +116,8 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Shared', 'Groups', ' // We watch Members.selectedMember because it's asynchronously set, so would be a hassle to handle updates here $scope.$watch( function() { return Members.selectedMember; }, function (member) { if(member) - member.petCount = Shared.countPets(null, member.items.pets); + member.petCount = Shared.countPets($rootScope.countExists(member.items.pets), member.items.pets); + member.mountCount = Shared.countMounts($rootScope.countExists(member.items.mounts), member.items.mounts); $scope.profile = member; }); $scope.sendPrivateMessage = function(uuid, message){ diff --git a/public/js/controllers/userCtrl.js b/public/js/controllers/userCtrl.js index 517d108605..cf5336f4c7 100644 --- a/public/js/controllers/userCtrl.js +++ b/public/js/controllers/userCtrl.js @@ -3,8 +3,8 @@ habitrpg.controller("UserCtrl", ['$rootScope', '$scope', '$location', 'User', '$http', '$state', 'Guide', 'Shared', function($rootScope, $scope, $location, User, $http, $state, Guide, Shared) { $scope.profile = User.user; - $scope.profile.petCount = Shared.countPets(null, $scope.profile.items.pets); - $scope.profile.mountCount = Shared.countMounts(null, $scope.profile.items.mounts); + $scope.profile.petCount = Shared.countPets($rootScope.countExists($scope.profile.items.pets), $scope.profile.items.pets); + $scope.profile.mountCount = Shared.countMounts($rootScope.countExists($scope.profile.items.mounts), $scope.profile.items.mounts); $scope.hideUserAvatar = function() { $(".userAvatar").hide(); }; From a72ae097d6f6fa7452e03e301dd3395588b7a4c8 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sun, 11 Jan 2015 18:23:27 -0600 Subject: [PATCH 38/58] Corrected how count is calculated --- public/js/controllers/rootCtrl.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/js/controllers/rootCtrl.js b/public/js/controllers/rootCtrl.js index ad5cd84f42..2546f8ec0a 100644 --- a/public/js/controllers/rootCtrl.js +++ b/public/js/controllers/rootCtrl.js @@ -88,8 +88,8 @@ habitrpg.controller("RootCtrl", ['$scope', '$rootScope', '$location', 'User', '$ // count pets, mounts collected totals, etc $rootScope.countExists = function(items) {return _.reduce(items,function(m,v){return m+(v?1:0)},0)} - $rootScope.petCount = Shared.countPets(null, User.user.items.pets); - $rootScope.mountCount = Shared.countMounts(null, User.user.items.mounts); + $rootScope.petCount = Shared.countPets($rootScope.countExists(User.user.items.pets), User.user.items.pets); + $rootScope.mountCount = Shared.countMounts($rootScope.countExists(User.user.items.mounts), User.user.items.mounts); $rootScope.$watch('user.items.pets', function(pets){ $rootScope.petCount = Shared.countPets($rootScope.countExists(pets), User.user.items.pets); From 1557907a1c01807590fa542c1f116ff774e50a4f Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Mon, 12 Jan 2015 13:12:40 -0600 Subject: [PATCH 39/58] Updated string names --- views/options/inventory/stable.jade | 4 ++-- views/shared/modals/drops.jade | 2 +- views/shared/profiles/achievements.jade | 12 ++++++------ views/shared/profiles/stats.jade | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/views/options/inventory/stable.jade b/views/options/inventory/stable.jade index 6c0380b442..2cfb1c6d51 100644 --- a/views/options/inventory/stable.jade +++ b/views/options/inventory/stable.jade @@ -41,7 +41,7 @@ script(type='text/ng-template', id='partials/options.inventory.mounts.html') a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch') .popover-content p=env.t('mattShall', {name: "{{user.profile.name}}"}) - h4= env.t('mountmasterProgress') + ': {{mountCount}} / {{totalMounts}} ' + env.t('mountsTamed') + h4= env.t('mountMasterProgress') + ': {{mountCount}} / {{totalMounts}} ' + env.t('mountsTamed') .col-md-12 +mountList(env.Content.dropEggs) .col-md-12 @@ -67,7 +67,7 @@ script(type='text/ng-template', id='partials/options.inventory.pets.html') a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch') .popover-content p=env.t('mattBochText1') - h4= env.t('beastmasterProgress') + ': {{petCount}} / {{totalPets}} ' + env.t('petsFound') + h4= env.t('beastMasterProgress') + ': {{petCount}} / {{totalPets}} ' + env.t('petsFound') .col-md-12 +petList(env.Content.dropEggs) diff --git a/views/shared/modals/drops.jade b/views/shared/modals/drops.jade index de474c756a..ffba52e088 100644 --- a/views/shared/modals/drops.jade +++ b/views/shared/modals/drops.jade @@ -18,7 +18,7 @@ script(type='text/ng-template', id='modals/pet-key.html') .modal-header // Checks if user has 90 pets and 90 mounts. If so, displays "Beast Master/Mount Master". // Else if user has 90 pets, displays "Beast Master". Else, displays "Mount Master" - - var masterTitle='{{petCount >= 90 && mountCount >= 90 ? env.t("beastMastName") + "/" + env.t("mountMastName") : petCount >= 90 ? env.t("beastMastName") : env.t("mountMastName")}}' + - var masterTitle='{{petCount >= 90 && mountCount >= 90 ? env.t("beastMountMasterName") : petCount >= 90 ? env.t("beastMasterName") : env.t("mountMasterName")}}' h4=env.t('petKeyBegin', {title: masterTitle}) .modal-body +gemButton diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index 9e120581a6..5e7f901fc9 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -81,19 +81,19 @@ div(ng-if='::user._id == profile._id') div(ng-if='profile.achievements.beastMaster || user._id == profile._id') .achievement.achievement-rat(ng-show='profile.achievements.beastMaster') div(ng-class='{muted: !profile.achievements.beastMaster}') - h5=env.t('beastMastName') - small=env.t('beastMastText') + h5=env.t('beastMasterName') + small=env.t('beastMasterText') small(ng-if='profile.achievements.beastMasterCount') - =env.t('beastMastText2', {count: "{{profile.achievements.beastMasterCount}}"}) + =env.t('beastMasterText2', {count: "{{profile.achievements.beastMasterCount}}"}) hr div(ng-if='profile.achievements.mountMaster || user._id == profile._id') .achievement.achievement-wolf(ng-show='profile.achievements.mountMaster') div(ng-class='{muted: !profile.achievements.mountMaster}') - h5=env.t('mountMastName') - small=env.t('mountMastText') + h5=env.t('mountMasterName') + small=env.t('mountMasterText') small(ng-if='profile.achievements.mountMasterCount') - =env.t('mountMastText2', {count: "{{profile.achievements.mountMasterCount}}"}) + =env.t('mountMasterText2', {count: "{{profile.achievements.mountMasterCount}}"}) hr div(ng-if='profile.achievements.rebirths') diff --git a/views/shared/profiles/stats.jade b/views/shared/profiles/stats.jade index bf472e3088..f644a7f6f7 100644 --- a/views/shared/profiles/stats.jade +++ b/views/shared/profiles/stats.jade @@ -72,7 +72,7 @@ table.table.table-striped(ng-if='user.flags.dropsEnabled') | : {{_.size(profile.items.pets)}} tr td - strong=env.t('beastProgress') + strong=env.t('beastMasterProgress') | : {{profile.petCount}}/90 h4(class=mobile?'item item-divider':'', ng-if='user.flags.dropsEnabled')=env.t('mounts') @@ -83,5 +83,5 @@ table.table.table-striped(ng-if='user.flags.dropsEnabled') | : {{_.size(profile.items.mounts)}} tr td - strong=env.t('mountmasterProgress') + strong=env.t('mountMasterProgress') | : {{profile.mountCount}}/90 From ff4c2ade96d8aab851f8dfd1bb87008b892fd910 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 11:32:41 -0600 Subject: [PATCH 40/58] Added triadBingo to achievement list --- views/shared/profiles/achievements.jade | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index 5e7f901fc9..fd9047d21c 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -96,6 +96,15 @@ div(ng-if='profile.achievements.mountMaster || user._id == profile._id') =env.t('mountMasterText2', {count: "{{profile.achievements.mountMasterCount}}"}) hr +div(ng-if='profile.achievements.triadBingo || user._id == profile._id') + .achievement.achievement-wolf(ng-show='profile.achievements.triadBingo') + div(ng-class='{muted: !profile.achievements.triadBingo}') + h5=env.t('triadBingoName') + small=env.t('triadBingoText') + small(ng-if='profile.achievements.triadBingoCount') + =env.t('triadBingoText2', {count: "{{profile.achievements.triadBingoCount}}"}) + hr + div(ng-if='profile.achievements.rebirths') .achievement.achievement-sun h5(ng-if='profile.achievements.rebirths == 1')=env.t('rebirthBegan') From 6a63f55a944a601729643c20376bb801d0cc836b Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 11:37:20 -0600 Subject: [PATCH 41/58] Added logic so muted version of mount master only appears if user has achieved beast master --- views/shared/profiles/achievements.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index 5e7f901fc9..5e2ea41d2f 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -87,7 +87,7 @@ div(ng-if='profile.achievements.beastMaster || user._id == profile._id') =env.t('beastMasterText2', {count: "{{profile.achievements.beastMasterCount}}"}) hr -div(ng-if='profile.achievements.mountMaster || user._id == profile._id') +div(ng-if='profile.achievements.mountMaster || (profile.achievements.beastMaster && user._id == profile._id)') .achievement.achievement-wolf(ng-show='profile.achievements.mountMaster') div(ng-class='{muted: !profile.achievements.mountMaster}') h5=env.t('mountMasterName') From cecb2792e026827fd4eb1a4eabef46aa5bcd6dd1 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 11:41:36 -0600 Subject: [PATCH 42/58] Added logic so triad bingo only appears in achievements after mount master has been reached --- views/shared/profiles/achievements.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index 92e0ec0e89..22e214e27d 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -96,7 +96,7 @@ div(ng-if='profile.achievements.mountMaster || (profile.achievements.beastMaster =env.t('mountMasterText2', {count: "{{profile.achievements.mountMasterCount}}"}) hr -div(ng-if='profile.achievements.triadBingo || user._id == profile._id') +div(ng-if='profile.achievements.triadBingo || (profile.achievements.mountMaster && user._id == profile._id)') .achievement.achievement-wolf(ng-show='profile.achievements.triadBingo') div(ng-class='{muted: !profile.achievements.triadBingo}') h5=env.t('triadBingoName') From e5b6e64a98c6e95c79b2fa89d0c19f6c3c76e2c5 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 11:47:07 -0600 Subject: [PATCH 43/58] Added preliminary logic for opening triadBingo modal --- public/js/controllers/inventoryCtrl.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/public/js/controllers/inventoryCtrl.js b/public/js/controllers/inventoryCtrl.js index f82781ac57..6807d33d4e 100644 --- a/public/js/controllers/inventoryCtrl.js +++ b/public/js/controllers/inventoryCtrl.js @@ -91,6 +91,15 @@ habitrpg.controller("InventoryCtrl", User.user.achievements.beastMaster = true; $rootScope.openModal('achievements/beastMaster'); } + + // Checks if Triad Bingo has been reached for the first time + if(!User.user.achievements.triadBingo + && Shared.countPets(null, User.user.items.pets) >= 90 + && Shared.countMounts(null, User.user.items.mounts) >= 90) { + // @TODO Loop through pets and make sure all are > -1 + //User.user.achievements.triadBingo = true; + //$rootScope.openModal('achievements/triadBingo'); + } } $scope.purchase = function(type, item){ From 3ba057258f566f4f7b40407c523a9904a8b32a67 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 11:49:19 -0600 Subject: [PATCH 44/58] Added triad bingo achievement modal --- views/shared/modals/achievements.jade | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/views/shared/modals/achievements.jade b/views/shared/modals/achievements.jade index a8857f9110..52dc2737e9 100644 --- a/views/shared/modals/achievements.jade +++ b/views/shared/modals/achievements.jade @@ -41,6 +41,17 @@ script(id='modals/achievements/mountMaster.html', type='text/ng-template') .modal-footer button.btn.btn-default(ng-click='$close()')=env.t('ok') +// Triad Bingo +script(id='modals/achievements/triadBingo.html', type='text/ng-template') + .modal-header + h4=env.t('modalAchievement') + .modal-body + p + .achievement.achievement-wolf + =env.t('triadBingoAchievement') + .modal-footer + button.btn.btn-default(ng-click='$close()')=env.t('ok') + // Contributor // activated by user.flags.contributor script(id='modals/achievements/contributor.html', type='text/ng-template') From ca1f4890ea015d97c8bb665aaf0f183d67ed9f14 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 11:55:23 -0600 Subject: [PATCH 45/58] Corrected icon for triad bingo --- views/shared/modals/achievements.jade | 2 +- views/shared/profiles/achievements.jade | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/views/shared/modals/achievements.jade b/views/shared/modals/achievements.jade index 52dc2737e9..9d1decd66c 100644 --- a/views/shared/modals/achievements.jade +++ b/views/shared/modals/achievements.jade @@ -47,7 +47,7 @@ script(id='modals/achievements/triadBingo.html', type='text/ng-template') h4=env.t('modalAchievement') .modal-body p - .achievement.achievement-wolf + .achievement.achievement-triadbingo =env.t('triadBingoAchievement') .modal-footer button.btn.btn-default(ng-click='$close()')=env.t('ok') diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index 22e214e27d..69b60f0d41 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -97,7 +97,7 @@ div(ng-if='profile.achievements.mountMaster || (profile.achievements.beastMaster hr div(ng-if='profile.achievements.triadBingo || (profile.achievements.mountMaster && user._id == profile._id)') - .achievement.achievement-wolf(ng-show='profile.achievements.triadBingo') + .achievement.achievement-triadbingo(ng-show='profile.achievements.triadBingo') div(ng-class='{muted: !profile.achievements.triadBingo}') h5=env.t('triadBingoName') small=env.t('triadBingoText') From 7860819ee3e286fdd68c6a3ccef905807f37284d Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 12:27:51 -0600 Subject: [PATCH 46/58] Added shell for awarding triad bingo --- src/models/user.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/models/user.js b/src/models/user.js index 91d1740ed8..e7da19f1d4 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -38,6 +38,8 @@ var UserSchema = new Schema({ beastMasterCount: Number, mountMaster: Boolean, mountMasterCount: Number, + triadBingo: Boolean, + triadBingoCount: Number, veteran: Boolean, snowball: Number, spookDust: Number, @@ -450,6 +452,12 @@ UserSchema.pre('save', function(next) { this.achievements.mountMaster = true } + // Determines if Triad Bingo should be awarded + + if (mountCount >= 90 || this.achievements.triadBingoCount > 0) { + // @TODO loop through pets and make sure they're all greater than -1 + //this.achievements.triadBingo = true + } // EXAMPLE CODE for allowing all existing and new players to be // automatically granted an item during a certain time period: From e25472759a3b2168a1b8a873674a20ad64b81f05 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 16:43:48 -0600 Subject: [PATCH 47/58] Added triad bingo achievment --- public/js/controllers/inventoryCtrl.js | 16 ++++++++++++---- src/models/user.js | 12 +++++++++--- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/public/js/controllers/inventoryCtrl.js b/public/js/controllers/inventoryCtrl.js index 6807d33d4e..de5a82333e 100644 --- a/public/js/controllers/inventoryCtrl.js +++ b/public/js/controllers/inventoryCtrl.js @@ -77,6 +77,13 @@ habitrpg.controller("InventoryCtrl", return _.pick(inventory, function(v,k){return v>0;}); } + $scope.calcTriadBingo = function() { + for (var p in User.user.items.pets) { + if(User.user.items.pets[p] < 0) return false; + } + return true; + }; + $scope.hatch = function(egg, potion){ var eggName = Content.eggs[egg.key].text(); var potName = Content.hatchingPotions[potion.key].text(); @@ -95,10 +102,11 @@ habitrpg.controller("InventoryCtrl", // Checks if Triad Bingo has been reached for the first time if(!User.user.achievements.triadBingo && Shared.countPets(null, User.user.items.pets) >= 90 - && Shared.countMounts(null, User.user.items.mounts) >= 90) { - // @TODO Loop through pets and make sure all are > -1 - //User.user.achievements.triadBingo = true; - //$rootScope.openModal('achievements/triadBingo'); + && Shared.countMounts(null, User.user.items.mounts) >= 90 + && $scope.calcTriadBingo()) { + + User.user.achievements.triadBingo = true; + $rootScope.openModal('achievements/triadBingo'); } } diff --git a/src/models/user.js b/src/models/user.js index e7da19f1d4..d136e31e6f 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -454,9 +454,15 @@ UserSchema.pre('save', function(next) { // Determines if Triad Bingo should be awarded - if (mountCount >= 90 || this.achievements.triadBingoCount > 0) { - // @TODO loop through pets and make sure they're all greater than -1 - //this.achievements.triadBingo = true + var giveTriadBingo = function(pets) { + for(var p in pets) { + if(pets[p] == -1) return false; + } + return true; + }; + + if ((mountCount >= 90 && giveTriadBingo(this.items.pets)) || this.achievements.triadBingoCount > 0) { + this.achievements.triadBingo = true; } // EXAMPLE CODE for allowing all existing and new players to be From f5e9568cef15eefe2c3683a5456b59cd8df19435 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 21:33:58 -0600 Subject: [PATCH 48/58] Consolidated calcTriadBingo function --- public/js/controllers/inventoryCtrl.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/public/js/controllers/inventoryCtrl.js b/public/js/controllers/inventoryCtrl.js index de5a82333e..02572e7f7f 100644 --- a/public/js/controllers/inventoryCtrl.js +++ b/public/js/controllers/inventoryCtrl.js @@ -78,11 +78,16 @@ habitrpg.controller("InventoryCtrl", } $scope.calcTriadBingo = function() { + var hasPets = Shared.countPets(null, User.user.items.pets) >= 90 ; + var hasMounts = Shared.countMounts(null, User.user.items.mounts) >= 90; + + if(!(hasPets && hasMounts)) return false; + for (var p in User.user.items.pets) { if(User.user.items.pets[p] < 0) return false; } return true; - }; + } $scope.hatch = function(egg, potion){ var eggName = Content.eggs[egg.key].text(); @@ -101,10 +106,7 @@ habitrpg.controller("InventoryCtrl", // Checks if Triad Bingo has been reached for the first time if(!User.user.achievements.triadBingo - && Shared.countPets(null, User.user.items.pets) >= 90 - && Shared.countMounts(null, User.user.items.mounts) >= 90 && $scope.calcTriadBingo()) { - User.user.achievements.triadBingo = true; $rootScope.openModal('achievements/triadBingo'); } From 3d904f18b9dc89f481825e4ebde0adeaa8370959 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 17 Jan 2015 09:53:28 -0600 Subject: [PATCH 49/58] Allowed mountMaster achievement to always be shown --- views/shared/profiles/achievements.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index 5e2ea41d2f..5e7f901fc9 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -87,7 +87,7 @@ div(ng-if='profile.achievements.beastMaster || user._id == profile._id') =env.t('beastMasterText2', {count: "{{profile.achievements.beastMasterCount}}"}) hr -div(ng-if='profile.achievements.mountMaster || (profile.achievements.beastMaster && user._id == profile._id)') +div(ng-if='profile.achievements.mountMaster || user._id == profile._id') .achievement.achievement-wolf(ng-show='profile.achievements.mountMaster') div(ng-class='{muted: !profile.achievements.mountMaster}') h5=env.t('mountMasterName') From f64bc5b2ed5c275ac7c6e82bf7fab0911bebeefa Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 17 Jan 2015 09:54:16 -0600 Subject: [PATCH 50/58] Removed if that would hide the triad bingo achievement until mount master attained --- views/shared/profiles/achievements.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index 095d720698..af414f15b5 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -96,7 +96,7 @@ div(ng-if='profile.achievements.mountMaster || user._id == profile._id') =env.t('mountMasterText2', {count: "{{profile.achievements.mountMasterCount}}"}) hr -div(ng-if='profile.achievements.triadBingo || (profile.achievements.mountMaster && user._id == profile._id)') +div(ng-if='profile.achievements.triadBingo || user._id == profile._id') .achievement.achievement-triadbingo(ng-show='profile.achievements.triadBingo') div(ng-class='{muted: !profile.achievements.triadBingo}') h5=env.t('triadBingoName') From ebd5bbd19b2628d5f678c8c30db3b08e7aafd835 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Tue, 20 Jan 2015 14:37:17 -0600 Subject: [PATCH 51/58] Added new info to Bailey announcement --- views/shared/new-stuff.jade | 41 ++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/views/shared/new-stuff.jade b/views/shared/new-stuff.jade index 3b22a93917..a76a12b5d4 100644 --- a/views/shared/new-stuff.jade +++ b/views/shared/new-stuff.jade @@ -1,14 +1,45 @@ -h5 +h5 MOUNT MASTER AND TRIAD BINGO ACHIEVEMENTS, PARTY SORTING OPTIONS, DATED TO-DOs, AND QUEST-LINE CHANGES + hr tr td - h5 1/19/2015 - WORLD BOSS: SECOND STRESS STRIKE! - p AHHHHHHHH!!!!! IT'S GOT ME!!!!! Oh, Habiticans, why didn't you do your Dailies?! - p The World Boss in the Tavern has used another Stress Strike, and this time it's attacked me, Bailey the Town Crier! To save me and the other NPCs, complete Dailies and To-Dos to damage the World Boss! Incomplete Dailies fill the Stress Strike Bar. When the Stress Strike bar is full, the World Boss will attack an NPC and regain some health. A World Boss will never damage individual players or accounts in any way. Only active accounts who are not resting in the inn will have their incomplete Dailies tallied. - p by Lemoness, Kiwibot, and SabreCat + h5 Mount Master and Triad Bingo Achievements + .achievement.achievement-wolf + .achievement.achievement-triadbingo + p There are two new achievements you can earn: Mount Master and Triad Bingo! Mount Master is awarded to users who have collected all 90 standard mounts, and Triad Bingo is for those who have collected all 90 standard pets, grown all 90 into mounts, and then rehatched 90 more standard pets. Wow! + + P Note that Quest Pets and Quest Mounts do not count towards Mount Master or Triad Bingo. If you currently meet the criteria, you will be awarded the badge, but unfortunately, if you already released your Mounts, you will not receive the badge until you collect them again. + p.small.muted by Lemoness, Taldin, Blade and Lorian + tr + td + h5 Party Sorting Options + p In the Party Page you can now sort your friends' avatars in ascending or descending order! To make the change take effect, you'll have to refresh the page. + + p.small.muted by Lemoness, Blade and Viirus + tr + td + h5 Dated To-Dos + p Now you can use To-Do tabs to sort and see your dated To-Dos! Simply click the "Dated" tab and only To-Dos with a due date will be displayed. They are not currently sorted by date, but we will be implementing that feature in the future. + + p.small.muted by Lemoness and Alys + tr + td + h5 Quest-Line Changes + .inventory_quest_scroll.achievement + p We've fixed a bug that was causing all participants in quest lines to receive the next scroll in a quest line, instead of just the person who originally started the quest. This caused duplication of quest scrolls. Now only the person who started the quest will receive the next quest scroll. All other rewards will still be given to all members of the party who participated in the quest. + + p.small.muted by Lemoness and Alys hr a(href='/static/old-news', target='_blank') Read older news mixin oldNews + h5 1/19/2015 + tr + td + h5 WORLD BOSS: SECOND STRESS STRIKE! + p AHHHHHHHH!!!!! IT'S GOT ME!!!!! Oh, Habiticans, why didn't you do your Dailies?! + p The World Boss in the Tavern has used another Stress Strike, and this time it's attacked me, Bailey the Town Crier! To save me and the other NPCs, complete Dailies and To-Dos to damage the World Boss! Incomplete Dailies fill the Stress Strike Bar. When the Stress Strike bar is full, the World Boss will attack an NPC and regain some health. A World Boss will never damage individual players or accounts in any way. Only active accounts who are not resting in the inn will have their incomplete Dailies tallied. + p.small.muted by Lemoness, Kiwibot, and SabreCat + h5 1/15/2015 tr td From 7842bbe22e2224659ad890b528749fe6480856e9 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Tue, 20 Jan 2015 15:58:00 -0600 Subject: [PATCH 52/58] Added stressbeast strike news --- views/shared/new-stuff.jade | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/views/shared/new-stuff.jade b/views/shared/new-stuff.jade index a76a12b5d4..864b0df484 100644 --- a/views/shared/new-stuff.jade +++ b/views/shared/new-stuff.jade @@ -8,13 +8,13 @@ h5 MOUNT MASTER AND TRIAD BINGO ACHIEVEMENTS, PARTY SORTING OPTIONS, DATED TO-DO p There are two new achievements you can earn: Mount Master and Triad Bingo! Mount Master is awarded to users who have collected all 90 standard mounts, and Triad Bingo is for those who have collected all 90 standard pets, grown all 90 into mounts, and then rehatched 90 more standard pets. Wow! P Note that Quest Pets and Quest Mounts do not count towards Mount Master or Triad Bingo. If you currently meet the criteria, you will be awarded the badge, but unfortunately, if you already released your Mounts, you will not receive the badge until you collect them again. - p.small.muted by Lemoness, Taldin, Blade and Lorian + p.small.muted by Lemoness, Taldin, Blade, and Lorian tr td h5 Party Sorting Options p In the Party Page you can now sort your friends' avatars in ascending or descending order! To make the change take effect, you'll have to refresh the page. - p.small.muted by Lemoness, Blade and Viirus + p.small.muted by Lemoness, Blade, and Viirus tr td h5 Dated To-Dos @@ -28,6 +28,15 @@ h5 MOUNT MASTER AND TRIAD BINGO ACHIEVEMENTS, PARTY SORTING OPTIONS, DATED TO-DO p We've fixed a bug that was causing all participants in quest lines to receive the next scroll in a quest line, instead of just the person who originally started the quest. This caused duplication of quest scrolls. Now only the person who started the quest will receive the next quest scroll. All other rewards will still be given to all members of the party who participated in the quest. p.small.muted by Lemoness and Alys + tr + td + h5 Stressbeast Desperation Triggered + + p We're almost there, Habiticans! With diligence and Dailies, we've whittled the Stressbeast's health down to only 500K! The creature roars and flails in desperation, rage building faster than ever. The monster is --- AHHH! --- swinging me and Matt around at a terrifying pace, raising a blinding snowstorm that makes it harder to hit. + We'll have to redouble our efforts, but take heart - this is a sign that the Stressbeast knows it is about to be defeated. Don't give up now! Please? + + p The Stressbeast raises its Rage and Defense! Complete Dailies and To-Dos to damage the World Boss. A World Boss will never damage individual players or accounts in any way. Only active accounts who are not resting in the inn will have their incomplete Dailies tallied. + p.small.muted by Lemoness, Kiwibot, and SabreCat hr a(href='/static/old-news', target='_blank') Read older news From b0bb3adf5314bc4e28bc4a75dca4b76745d5fe1b Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Tue, 20 Jan 2015 16:09:43 -0600 Subject: [PATCH 53/58] removed quest line text --- views/shared/new-stuff.jade | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/views/shared/new-stuff.jade b/views/shared/new-stuff.jade index 864b0df484..ba780ce5e7 100644 --- a/views/shared/new-stuff.jade +++ b/views/shared/new-stuff.jade @@ -1,4 +1,4 @@ -h5 MOUNT MASTER AND TRIAD BINGO ACHIEVEMENTS, PARTY SORTING OPTIONS, DATED TO-DOs, AND QUEST-LINE CHANGES +h5 MOUNT MASTER AND TRIAD BINGO ACHIEVEMENTS, PARTY SORTING OPTIONS, DATED TO-DOs, AND STRESSBEAST DESPERATION TRIGGERED! hr tr td @@ -22,13 +22,6 @@ h5 MOUNT MASTER AND TRIAD BINGO ACHIEVEMENTS, PARTY SORTING OPTIONS, DATED TO-DO p.small.muted by Lemoness and Alys tr - td - h5 Quest-Line Changes - .inventory_quest_scroll.achievement - p We've fixed a bug that was causing all participants in quest lines to receive the next scroll in a quest line, instead of just the person who originally started the quest. This caused duplication of quest scrolls. Now only the person who started the quest will receive the next quest scroll. All other rewards will still be given to all members of the party who participated in the quest. - - p.small.muted by Lemoness and Alys - tr td h5 Stressbeast Desperation Triggered From de1c0240f6b2748f7cd0e0f65becc6b8bb318eb0 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Tue, 20 Jan 2015 16:22:29 -0600 Subject: [PATCH 54/58] Restored changelog --- CHANGELOG.md | 282 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 282 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..bacc54d3f8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,282 @@ +My app - Changelog +# (2014-02-15) + + +## Documentation + +- **rebirth:** Bullet point about repurchase of limited ed gear after Rebirth + ([d3f4a561](watch/commits/d3f4a561fdf137e5d8f406bae03be4fef1caff22)) + + +## Bug Fixes + +- **#2003:** healer gear not showing + ([949cd97b](watch/commits/949cd97b91b42e9450eba559bbfea17e239ab100)) +- **#2375:** merge in @SabreCat's stats.jade changes "More elegant show/hide setup for attribute bonuses" + ([518f200a](watch/commits/518f200a8fc7373b44ed7d7b5f016d921b0746bd)) +- **allocateNow:** Send empty object to user.ops per @colegleason suggestion + ([f6e12fa2](watch/commits/f6e12fa25e4366622db3e6f1b6ab03e848b49e10)) +- **batch-update:** send errors to client if batch-update found an error, crash pid. + ([f9679629](watch/commits/f967962996be69a5335454610af76d10e1db08b8)) +- **beastmaster:** fixes #2557, adds opacity to previously-owned pets after they're mounted. You can earn them back again + ([5caaff1c](watch/commits/5caaff1cea1a68fe572e7ddf4aac50248b13df5d)) +- **bosses:** don't reset progress.up when starting a new quest. We want to be able to carry over damage from the same day a boss battle begins, even if the dailies were completed before battle-start. Fixes #2168 + ([4efd0f5e](watch/commits/4efd0f5ed8708f2491dd483f93e3d7a268a6337d)) +- **bower:** updated jquery directory + ([191b789d](watch/commits/191b789d760a7bdc7d1b53727f6127b677c78c94)) +- **bs3:** + - fix to MemberModalCtrl parameter + ([ebd1df93](watch/commits/ebd1df932e28263e5cc01e8a35f545ab26f1e8bd)) + - port pet feeding bar + ([5db96ebc](watch/commits/5db96ebca2fbd5b64f49af03a5137ea80f6b1673)) +- **buffs:** Move help bubble to left of special buffs + ([4f911a68](watch/commits/4f911a68d805742e6744383948eea6f224f2b0ea)) +- **challenges:** + - better handling of deleted challenges. If !chal, break the task.challenge. Move the function into userController#score so we have access to next, etc. fixes #1883 + ([33b326b5](watch/commits/33b326b59685ea6e50f9950094d009460ce80094)) + - challenge csv export now has proper filename + ([36f21196](watch/commits/36f21196f466260b7cd52b283c50b9e16943f668), + [#2689](watch/issues/2689)) +- **classes:** + - misc fixes + ([d2121a85](watch/commits/d2121a858716cb5a532a53ee9c5a1adaa74a7f69)) + - misc class fixes (not @snicker, ng-if on item store since we dynamically swap it sometimes) + ([478be611](watch/commits/478be6111337cd200374f7f31b959725c6a0b945)) +- **css:** + - temp fix for bailey height + ([c8faffcc](watch/commits/c8faffcc7289090990c3a17ab8c07a00069f5ce4)) + - menu and gems wallet margin + ([975b5165](watch/commits/975b5165730477310aa64bac27ddc07a34ea6c1d)) + - lighter columns title + ([a22e2814](watch/commits/a22e28143f74302c8340c3d33b01af9714875523)) + - better food tray + ([1c41c4dd](watch/commits/1c41c4ddb9a5b04297a371bc4d6aba013ce33f17)) +- **errors:** + - `return next(err)` when experiencing errors, instead of res.json(500,{err:err}). Let the top-level error handler handle this (needed for upcoming versionerror discarding) + ([bf5e9016](watch/commits/bf5e9016a4cb7889b3a9e39b90eb35cb8f7f9ec8)) + - handle if err.message == undefined, send err + ([b42dacf2](watch/commits/b42dacf2035d62453b585cfcf453829a423b59de)) +- **event-tracking:** + - typo + ([ff9d4b88](watch/commits/ff9d4b886ef7a98da0514975441a8bb845496c31)) + - stripe sub, not pp + ([0c99976b](watch/commits/0c99976bf5a3c7f04f031d62a8b07c862c85a0a9)) +- **find_uniq_user:** fix + ([ecbe780e](watch/commits/ecbe780e70549b1470504efe052f238c89a9db14)) +- **footer:** ensure window.env is accessible from static pages, so we can get deferred scripts on frontpage (esp google analytics) + ([67ee011a](watch/commits/67ee011aa35969db93e2d7dc1cd1e1f587f146de)) +- **groups:** + - pass missing next into Like function + ([afee0968](watch/commits/afee0968f8f6923847e186d3e11b9745ced9606e)) + - send error if +1 errored + ([5b6c4427](watch/commits/5b6c4427b504b6143f24bfee314f562b9803c5a4)) +- **hall:** let's try $gt instead of $ne:null, the query is still slow + ([a72b0131](watch/commits/a72b013131cfc7fa5d3affdbfe59b5b3cb15ae89)) +- **i18n:** do not save user language for now + ([094a4be0](watch/commits/094a4be0015f0f0deaaf94a0734193eb40a8beae)) +- **misc:** + - some styles & translations + ([8f19f225](watch/commits/8f19f225f104960b3cf27e229a5571e014be697c)) + - isStaticPage and debug buttons + ([19139f56](watch/commits/19139f562b8e68ed43f4cab748920f1e0634e86e)) +- **missing-gems:** remove ad-removal from script, since ads are part of subscription + ([e1240dde](watch/commits/e1240dde1d3dcaca4235fad384fea5c07a3706bf)) +- **mongoose:** typo + ([2786b362](watch/commits/2786b362067efdd245c3efa3a4891021fcfaab2d)) +- **mounts:** + - fix pets & mounts css to position the user based on pet/mount equip + ([37340d23](watch/commits/37340d23180da02d3742dc9be40a5fb780ecb13b)) + - Move avatar upward when mounted regardless of pet + ([bc1adeb1](watch/commits/bc1adeb1277103a5ca1f756e175ed68bbe837a2f)) +- **nodemon:** + - Add another ignore for weirdsauce Windoze dev environments + ([3fda08c3](watch/commits/3fda08c366793c8fbcbf701a9594ae3b2fd8bbea)) + - ignore CHANGELOG.md on watch + ([d6c55952](watch/commits/d6c55952da8b49f36e9d8e4570d80931d081343d)) +- **party:** Round boss health up instead of to nearest integer + ([626da568](watch/commits/626da5681f5ea95700f8ddf40587c7184926971c), + [#2504](watch/issues/2504)) +- **paypal:** fixes #2492, remove environment check for now, only have production-mode option. revisit + ([1dc68112](watch/commits/1dc68112d131e4ebdec32ddff938eb6311d6565f)) +- **performance:** cache spritesmith image, fix #2633 + ([f03d7d7d](watch/commits/f03d7d7dde4f8cb39babd2b982d77e7f88f349b7)) +- **pets:** add questPets to UserSchema.items.mounts too fixes #2814 + ([42766125](watch/commits/42766125d5c8870f25c3a0a001473f700b8f6cc1)) +- **profile:** fix bug where empty profile displayed on username click + ([0579c432](watch/commits/0579c432489c4a038e8c9f95ea3b285f5abc146f), + [#2465](watch/issues/2465)) +- **quests:** + - quests with a level cap cannot be bought before that level. + ([dab9ddbd](watch/commits/dab9ddbda27f5e10e4545fea703deebfe2dd9975), + [#2707](watch/issues/2707)) + - bug fix to multi-drop + ([f478d10c](watch/commits/f478d10c20f816cd104b3f0da814c189957f45f5)) + - list multiple rewards in dialog + ([e48c7277](watch/commits/e48c7277f8256cf827790aece51e897fe0439374)) +- **readme:** remove text about translations wip + ([f2bb1fd2](watch/commits/f2bb1fd26e44a9eb0ba325776bf335e021beeece)) +- **settings:** + - remove unnecessary code + ([5f0cf657](watch/commits/5f0cf6575c0dc4cfc041956e3dc27898d8b4242d)) + - reintroduce space between captions and help bubbles stripped during localization + ([5ddf09fe](watch/commits/5ddf09fe13c7f8d844c8c47be0fb8f8b2fd1df33)) +- **spells:** + - temp workaround for spell & task being undefined. #2649 #2640 + ([241d0414](watch/commits/241d04140f5db77929d9f597d232f55843bb0f5d)) + - more $rootScope spell-casting bug fixes + ([47bd6dcb](watch/commits/47bd6dcb79778d90d6f3ddeb003c3d8e45433333)) + - add some spells tests, don't send up body to spell paths + ([e0646bb9](watch/commits/e0646bb98d44b6874b5259107c9be5fa34c58933)) + - some $rootScope.applying action fixes so cast-ending is immediate instead of waiting on response. Also, slim down party population to the essentials to avoid RequestEntityTooLarge + ([c6f7ab8a](watch/commits/c6f7ab8a5c6f4e382208a928b90ba5f4eba9cd37)) + - to cancel spell-casting + ([a1df41ad](watch/commits/a1df41ad8165cd9eb6d2d5d59c7fe404edde716c)) +- **stable:** show hatchable combo when petOwned>0 (fyi @deilann) + ([51bff238](watch/commits/51bff23885ca0080e7e71ff752daa0950ae923ae)) +- **stats:** Better layout for attribute point allocation + ([d782fc6b](watch/commits/d782fc6b6a3cd7e90d327c93a5764626b2990c74)) +- **swagger:** fix jade script warning in swagger + ([2e2fcfcf](watch/commits/2e2fcfcf464fbae21bff9e1be1ca915f071b976b)) +- **tests:** + - include select2 in test manifest + ([38b4cea7](watch/commits/38b4cea73299f51c4db7f6b2eb12533d219745f8)) + - don't use cluster in tests, else we get "connection refused" + ([7a479098](watch/commits/7a479098dc6535654e322c737d80813790967941)) +- **todos:** + - add migration for dateCreated & dateCompleted #2478 + ([4cc39f16](watch/commits/4cc39f16a13f5fb9f0e3ddde7d274c0f224f4a0e)) + - add dateCompleted to todos so they're archived 3 days after completion, not 3 days after creation. Fixes #2478 + ([b1afc177](watch/commits/b1afc177aa4bfc4cbd9b847e40431db91666d9c3)) +- **toolbar:** + - Tweak Settings drop-down + ([e241429c](watch/commits/e241429cc3d2eca18d2f5a9726f6caa6270a1b02)) + - Tweak icon popovers + ([4454204f](watch/commits/4454204f47f80e64119f7896bf246259173d115b)) + - tweaks + ([5501d57e](watch/commits/5501d57e107c0bc7085847b0c808f027360fa405)) +- **translation:** Fix #2585. + ([06200acc](watch/commits/06200accada462c3234ab407cfb0f6b684e5effe)) +- **translations:** + - fix #2564 and similar ones + ([42740902](watch/commits/42740902055a3807532028a5dfb39eff905c104f)) + - add env.t to rootScope + ([13131087](watch/commits/13131087ff9563d2d174b2c978102f0dc2b87387)) + - remove translations for privacy & terms + ([a9095f34](watch/commits/a9095f346479336be13b2bf341666b908fa30b3d)) + - merge @luveluen pull request, fix some syntax + ([a6c67f17](watch/commits/a6c67f17815558f19895b8f67d29c40c14689f09)) + - @lefnire now everything is ok + ([52decb7e](watch/commits/52decb7edeefb4755ea832b0cf63eaeea5e93259)) + - correct some variables + ([fba73953](watch/commits/fba739535bc1b630d73eb469448e9c3706043efd)) + - revert some views + ([d000c706](watch/commits/d000c70679ae0e13d9bec749295e42cc8e299c95)) +- **user:** + - make sure next is passed to all routes, and is available in err-back of batch updates + ([0c21f54c](watch/commits/0c21f54c67b52b07c417fd8216c6b04bce59d0ab)) + - if need to upgrade site, send 501, not 400 + ([ab86ba11](watch/commits/ab86ba11bdb3379a8d8fa1814879640d61c57227)) + - PUT user retricted path errors are 401, not 500 + ([0aec4caa](watch/commits/0aec4caa785c3b12e15f1c2e19c5b67b20d1a6e1)) +- **winston:** typo + ([83b3739f](watch/commits/83b3739f4671a08466e057242f936140d5c739ef)) + + +## Features + +- **administrators:** start adding features page for admin accounts + ([f7f4a0c1](watch/commits/f7f4a0c166558ba7e5461732f7bb6d7bcac25f88)) +- **attributes:** Add backfill button in flat and classbased allocation modes + ([76a7ab5b](watch/commits/76a7ab5bcce2d486dab3f447f0659ba870d1ff7e)) +- **bailey:** notif about STWC updates + scroll-purchase deadlines (@colegleason) + ([90176444](watch/commits/90176444e9c7a318040829e8b71d1493b5d58e9e)) +- **bug-crushing:** add the critical hammer of bug-crushing + ([00af5f7d](watch/commits/00af5f7d0258b0f7dddef8ede40bd825b057748a)) +- **challenges:** + - add angular-ui-select2 for simpler find/select challenge winner. + ([9fa45217](watch/commits/9fa452173989889c48ed696a45cf4a1dc16294a4)) + - add button for csv export + ([ae0d758d](watch/commits/ae0d758d8fc751219a693fee7f3e3ebcfbd67590)) + - add csv export for challenge progress. WIP, will refine this over time - but we need it something like this for the STWC come 1/31. + ([16a602f9](watch/commits/16a602f94c3b7c99d49e42b47b4835b65a243690)) + - markdown in challenge-descriptions + ([41233c7b](watch/commits/41233c7b167905eeccfdff5589789e002ec23f97)) +- **cheating:** prevent +habit spamming with a 10s timer + ([ad4ca665](watch/commits/ad4ca6655a3bdd870bb08173530372f81fdc9102)) +- **event-tracking:** + - better page-view tracking via ui-router + ([b093717b](watch/commits/b093717b8d54b61e5d4b44b0d56a1f43308f078c)) + - track registration count + ([72b6c9bc](watch/commits/72b6c9bc9189275909804f9ecab18e9fe1f69d27)) + - pass ga to server user.ops + ([9217b517](watch/commits/9217b5174ab9ab4754269263b214f6bfe45d4f1d)) + - track ecommerce events + ([d89fb17b](watch/commits/d89fb17b03b2e2c0fb1da77fb13cc660a5b6c9d1)) + - add server-side GA tracking for ecommerce events + ([f7b4a04a](watch/commits/f7b4a04a590ade26871abc726ade2c666176488e)) + - start adding some client-side GA event-tracking + ([ffb42906](watch/commits/ffb42906e1d7c6bd8f01e715d98d96426bc6d0de)) +- **groups:** add group chat notifications + ([ce82be63](watch/commits/ce82be637d1d707e899aeee5f315da69367fa367)) +- **habitBirthday:** add habitrpg birthday event. includes cakes for all pets, absurd party robes, npc swap, badge, etc. @lemoness + ([aff885c0](watch/commits/aff885c05c03bd70beeb0db8d68922671fc46309)) +- **homepage:** + - start cleaning up homepage, add navbar for play button & upcoming links + ([0ddaae4d](watch/commits/0ddaae4d7525277e696a57d20234e49cd6fd1cbc)) + - use .marketing for centering, add playbutton as static in footer. This is pretty ugly (http://gyazo.com/215e20729569689ab48cf56c71c1fe28), let's iterate / prettify. @deilann + ([47bcaf83](watch/commits/47bcaf83e760dbb266ae7ff2f7299c2a1cdf3712)) +- **marketing:** + - more copy for mobile + ([cbb44847](watch/commits/cbb448478edfd0003c43d20ed216bab20d25dadd)) + - start fleshing out the about page with images, content, etc. Create separate videos page + ([cb079977](watch/commits/cb079977e6f35f9308ab28158373dd3e1de9f798)) + - add video tuts on "learn more" page until we have some copy + ([5028707c](watch/commits/5028707c7b174b5e050c7c1662155e781a6b415b)) + - some frontpage updates, a screenshot, & "contact us" button mods + ([a582a054](watch/commits/a582a0546d680d36a21c507deff725a6c38fdb28)) +- **premium:** + - subscriber mystery item (doesn't yet do anything) + ([d0342628](watch/commits/d0342628340ce7dce95fa20177ccbcfe1ebf93e6)) + - backport server code for premium subs (it's just ccard handling & uer model stuff) + ([3660f1a8](watch/commits/3660f1a85c1447de118f334a145d0d7698b93981)) + - updates to group plans info page + ([66f95cdd](watch/commits/66f95cdd4cfb698fddc765a77b66d29e31eb1361)) + - backport client-side premium code to public repo, it's client-side anyway (@colegleason @paglias) + ([2e18f0eb](watch/commits/2e18f0eb82f5efc77544d33d1db3fbb9cc583124)) +- **quests:** + - add flags.levelDrops for dropping items at certain levels + ([78315d82](watch/commits/78315d828ba9a1033526b9a72b7c385281e6ad0a)) + - allow dropping scrolls in quests + ([54064deb](watch/commits/54064debf3c95390b5507acd826f9db3339b9f09)) + - allow html in quest notes + ([800231cf](watch/commits/800231cf6481351032d4e5143edd54f5e7e3a179)) + - add level requirement for quests + ([9e69d795](watch/commits/9e69d7959f174955f44429a94f22ce40fc5f7861)) + - add canBuy so we can exclude certain items from the market (if you can only find them on quest-drop, etc). This isn't the prettiest, change? + ([f16654d2](watch/commits/f16654d2354dc86cc7c52e1cf0562f850cf203be)) + - allow quests to drop multiple items + ([d9e5725e](watch/commits/d9e5725ee13f7e9ad329fc548537d5265cf483ca)) +- **rainbow-hair:** add rainbow hair colors + ([82d9233d](watch/commits/82d9233d99167d6704c878884dcc49a55cc7d884)) +- **restore:** add restore-gp back in. Parly to end the winter event, partly due to the convo at #2681 regarding subscriptions. Fixes #2681 + ([179316e1](watch/commits/179316e10fa7597b08573d94721861baa3dbbb1c)) +- **toolbar:** + - try with icons instead of text, test against prod / beta & get a vote. + ([7456f00d](watch/commits/7456f00dc6122ad293652b7a32fb4ce671f75241)) + - add toolbar featuring navigation, gems / subs, bailey, & chat / invite notifications + ([f72cb213](watch/commits/f72cb21300c078b439b3334bfa3e205ba04dc949)) +- **tracking:** gems > toolbar separately from wallet + ([f6abfc67](watch/commits/f6abfc67b31808c0e2d325c235747260855338c9)) +- **valentine:** valentine event + ([fd6eb872](watch/commits/fd6eb8724eae38d02849ffccb09f1f9c7d8e490d)) +- **winter:** + - remove purchasable winter hair colors, keep available if they purchased during event + ([f8796e90](watch/commits/f8796e9028d4f4cd2b5c5ede1734d2876d174dc9)) + - remove winter scrolls & snowballs + ([52f8f0d5](watch/commits/52f8f0d5b0fdf4271fcb5f7d497ad3bf544c24e8)) + + +## Docs + +- **rebirth:** Bullet point about repurchase of limited ed gear after Rebirth + From cc65ea1346152b7187f5e57208172f9726ecb8f2 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Tue, 20 Jan 2015 16:32:30 -0600 Subject: [PATCH 55/58] Lemoness removed from items she didn't work on --- views/shared/new-stuff.jade | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/views/shared/new-stuff.jade b/views/shared/new-stuff.jade index ba780ce5e7..e443fa43b8 100644 --- a/views/shared/new-stuff.jade +++ b/views/shared/new-stuff.jade @@ -8,19 +8,19 @@ h5 MOUNT MASTER AND TRIAD BINGO ACHIEVEMENTS, PARTY SORTING OPTIONS, DATED TO-DO p There are two new achievements you can earn: Mount Master and Triad Bingo! Mount Master is awarded to users who have collected all 90 standard mounts, and Triad Bingo is for those who have collected all 90 standard pets, grown all 90 into mounts, and then rehatched 90 more standard pets. Wow! P Note that Quest Pets and Quest Mounts do not count towards Mount Master or Triad Bingo. If you currently meet the criteria, you will be awarded the badge, but unfortunately, if you already released your Mounts, you will not receive the badge until you collect them again. - p.small.muted by Lemoness, Taldin, Blade, and Lorian + p.small.muted by Taldin, Blade, and Lorian tr td h5 Party Sorting Options p In the Party Page you can now sort your friends' avatars in ascending or descending order! To make the change take effect, you'll have to refresh the page. - p.small.muted by Lemoness, Blade, and Viirus + p.small.muted by Blade, and Viirus tr td h5 Dated To-Dos p Now you can use To-Do tabs to sort and see your dated To-Dos! Simply click the "Dated" tab and only To-Dos with a due date will be displayed. They are not currently sorted by date, but we will be implementing that feature in the future. - p.small.muted by Lemoness and Alys + p.small.muted by Alys tr td h5 Stressbeast Desperation Triggered From e95b238041a7d6ab0a129c11d4700480c00b8117 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Tue, 20 Jan 2015 16:33:18 -0600 Subject: [PATCH 56/58] Gave credit to badge creators --- views/shared/new-stuff.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/new-stuff.jade b/views/shared/new-stuff.jade index e443fa43b8..de9ab9a1ba 100644 --- a/views/shared/new-stuff.jade +++ b/views/shared/new-stuff.jade @@ -8,7 +8,7 @@ h5 MOUNT MASTER AND TRIAD BINGO ACHIEVEMENTS, PARTY SORTING OPTIONS, DATED TO-DO p There are two new achievements you can earn: Mount Master and Triad Bingo! Mount Master is awarded to users who have collected all 90 standard mounts, and Triad Bingo is for those who have collected all 90 standard pets, grown all 90 into mounts, and then rehatched 90 more standard pets. Wow! P Note that Quest Pets and Quest Mounts do not count towards Mount Master or Triad Bingo. If you currently meet the criteria, you will be awarded the badge, but unfortunately, if you already released your Mounts, you will not receive the badge until you collect them again. - p.small.muted by Taldin, Blade, and Lorian + p.small.muted by Taldin, Blade, Lorian, Aiseant, and Hanztan tr td h5 Party Sorting Options From d4ab70b174e0d10316ac0414a0b88493f68d23f5 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Tue, 20 Jan 2015 16:41:36 -0600 Subject: [PATCH 57/58] Removed errant comma --- views/shared/new-stuff.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/new-stuff.jade b/views/shared/new-stuff.jade index de9ab9a1ba..c48734cb5c 100644 --- a/views/shared/new-stuff.jade +++ b/views/shared/new-stuff.jade @@ -14,7 +14,7 @@ h5 MOUNT MASTER AND TRIAD BINGO ACHIEVEMENTS, PARTY SORTING OPTIONS, DATED TO-DO h5 Party Sorting Options p In the Party Page you can now sort your friends' avatars in ascending or descending order! To make the change take effect, you'll have to refresh the page. - p.small.muted by Blade, and Viirus + p.small.muted by Blade and Viirus tr td h5 Dated To-Dos From c73fb9eb31eace863c389c1741473f18a0eaaaf1 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Tue, 20 Jan 2015 16:44:49 -0600 Subject: [PATCH 58/58] Added in missing p tag --- views/shared/new-stuff.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/new-stuff.jade b/views/shared/new-stuff.jade index c48734cb5c..724e1f8dd7 100644 --- a/views/shared/new-stuff.jade +++ b/views/shared/new-stuff.jade @@ -26,7 +26,7 @@ h5 MOUNT MASTER AND TRIAD BINGO ACHIEVEMENTS, PARTY SORTING OPTIONS, DATED TO-DO h5 Stressbeast Desperation Triggered p We're almost there, Habiticans! With diligence and Dailies, we've whittled the Stressbeast's health down to only 500K! The creature roars and flails in desperation, rage building faster than ever. The monster is --- AHHH! --- swinging me and Matt around at a terrifying pace, raising a blinding snowstorm that makes it harder to hit. - We'll have to redouble our efforts, but take heart - this is a sign that the Stressbeast knows it is about to be defeated. Don't give up now! Please? + p We'll have to redouble our efforts, but take heart - this is a sign that the Stressbeast knows it is about to be defeated. Don't give up now! Please? p The Stressbeast raises its Rage and Defense! Complete Dailies and To-Dos to damage the World Boss. A World Boss will never damage individual players or accounts in any way. Only active accounts who are not resting in the inn will have their incomplete Dailies tallied. p.small.muted by Lemoness, Kiwibot, and SabreCat