diff --git a/common/img/sprites/spritesmith/backgrounds/background_idyllic_cabin.png b/common/img/sprites/spritesmith/backgrounds/background_idyllic_cabin.png new file mode 100644 index 0000000000..5d4c3ae1a4 Binary files /dev/null and b/common/img/sprites/spritesmith/backgrounds/background_idyllic_cabin.png differ diff --git a/common/img/sprites/spritesmith/backgrounds/background_mountain_pyramid.png b/common/img/sprites/spritesmith/backgrounds/background_mountain_pyramid.png new file mode 100644 index 0000000000..2747511646 Binary files /dev/null and b/common/img/sprites/spritesmith/backgrounds/background_mountain_pyramid.png differ diff --git a/common/img/sprites/spritesmith/backgrounds/background_stormy_ship.png b/common/img/sprites/spritesmith/backgrounds/background_stormy_ship.png new file mode 100644 index 0000000000..06527d4784 Binary files /dev/null and b/common/img/sprites/spritesmith/backgrounds/background_stormy_ship.png differ diff --git a/common/img/sprites/spritesmith/gear/armoire/broad_armor_armoire_falconerArmor.png b/common/img/sprites/spritesmith/gear/armoire/broad_armor_armoire_falconerArmor.png new file mode 100644 index 0000000000..1608dd42ea Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/broad_armor_armoire_falconerArmor.png differ diff --git a/common/img/sprites/spritesmith/gear/armoire/head_armoire_falconerCap.png b/common/img/sprites/spritesmith/gear/armoire/head_armoire_falconerCap.png new file mode 100644 index 0000000000..f0e646645e Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/head_armoire_falconerCap.png differ diff --git a/common/img/sprites/spritesmith/gear/armoire/shield_armoire_perchingFalcon.png b/common/img/sprites/spritesmith/gear/armoire/shield_armoire_perchingFalcon.png new file mode 100644 index 0000000000..463c57d788 Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/shield_armoire_perchingFalcon.png differ diff --git a/common/img/sprites/spritesmith/gear/armoire/shop/shop_armor_armoire_falconerArmor.png b/common/img/sprites/spritesmith/gear/armoire/shop/shop_armor_armoire_falconerArmor.png new file mode 100644 index 0000000000..ba755b236d Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/shop/shop_armor_armoire_falconerArmor.png differ diff --git a/common/img/sprites/spritesmith/gear/armoire/shop/shop_head_armoire_falconerCap.png b/common/img/sprites/spritesmith/gear/armoire/shop/shop_head_armoire_falconerCap.png new file mode 100644 index 0000000000..cd40af5723 Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/shop/shop_head_armoire_falconerCap.png differ diff --git a/common/img/sprites/spritesmith/gear/armoire/shop/shop_shield_armoire_perchingFalcon.png b/common/img/sprites/spritesmith/gear/armoire/shop/shop_shield_armoire_perchingFalcon.png new file mode 100644 index 0000000000..262b0177b1 Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/shop/shop_shield_armoire_perchingFalcon.png differ diff --git a/common/img/sprites/spritesmith/gear/armoire/slim_armor_armoire_falconerArmor.png b/common/img/sprites/spritesmith/gear/armoire/slim_armor_armoire_falconerArmor.png new file mode 100644 index 0000000000..d905267343 Binary files /dev/null and b/common/img/sprites/spritesmith/gear/armoire/slim_armor_armoire_falconerArmor.png differ diff --git a/common/img/sprites/spritesmith_large/promo/promo_backgrounds_armoire_201608.png b/common/img/sprites/spritesmith_large/promo/promo_backgrounds_armoire_201608.png new file mode 100644 index 0000000000..34755d8671 Binary files /dev/null and b/common/img/sprites/spritesmith_large/promo/promo_backgrounds_armoire_201608.png differ diff --git a/common/locales/en/backgrounds.json b/common/locales/en/backgrounds.json index b2981d3d04..956033fee0 100644 --- a/common/locales/en/backgrounds.json +++ b/common/locales/en/backgrounds.json @@ -207,5 +207,13 @@ "backgroundDeepSeaText": "Deep Sea", "backgroundDeepSeaNotes": "Dive to the Deep Sea.", "backgroundDilatoryCastleText": "Castle of Dilatory", - "backgroundDilatoryCastleNotes": "Swim past the Castle of Dilatory." + "backgroundDilatoryCastleNotes": "Swim past the Castle of Dilatory.", + + "backgrounds082016": "SET 27: Released August 2016", + "backgroundIdyllicCabinText": "Idyllic Cabin", + "backgroundIdyllicCabinNotes": "Retreat to an Idyllic Cabin.", + "backgroundMountainPyramidText": "Mountain Pyramid", + "backgroundMountainPyramidNotes": "Climb the many steps of a Mountain Pyramid.", + "backgroundStormyShipText": "Stormy Ship", + "backgroundStormyShipNotes": "Hold steady against wind and wave aboard a Stormy Ship." } diff --git a/common/locales/en/gear.json b/common/locales/en/gear.json index a434992548..0e1b411559 100644 --- a/common/locales/en/gear.json +++ b/common/locales/en/gear.json @@ -481,6 +481,8 @@ "armorArmoireStripedSwimsuitNotes": "What could be more fun than battling sea monsters on the beach? Increases Constitution by <%= con %>. Enchanted Armoire: Seaside Set (Item 2 of 3).", "armorArmoireCannoneerRagsText": "Cannoneer Rags", "armorArmoireCannoneerRagsNotes": "These rags be tougher than they look. Increases Constitution by <%= con %>. Enchanted Armoire: Cannoneer Set (Item 2 of 3).", + "armorArmoireFalconerArmorText": "Falconer Armor", + "armorArmoireFalconerArmorNotes": "Keep away talon attacks with this sturdy armor! Increases Constitution by <%= con %>. Enchanted Armoire: Falconer Set (Item 1 of 3).", "headgear": "headgear", "headgearCapitalized": "Headgear", @@ -746,6 +748,8 @@ "headArmoireGreenFloppyHatNotes": "Many spells have been sewn into this simple hat, giving it a gorgeous green color. Increases Constitution, Intelligence, and Perception by <%= attrs %> each. Enchanted Armoire: Independent Item.", "headArmoireCannoneerBandannaText": "Cannoneer Bandanna", "headArmoireCannoneerBandannaNotes": "'Tis a cannoneer's life for me! Increases Intelligence and Perception by <%= attrs %> each. Enchanted Armoire: Cannoneer Set (Item 3 of 3).", + "headArmoireFalconerCapText": "Falconer Cap", + "headArmoireFalconerCapNotes": "This jaunty cap helps you better understand birds of prey. Increases Intelligence by <%= int %>. Enchanted Armoire: Falconer Set (Item 2 of 3).", "offhand": "shield-hand item", "offhandCapitalized": "Shield-Hand Item", @@ -881,6 +885,8 @@ "shieldArmoireFloralBouquetNotes": "Not much help in battle, but aren't they beautiful? Increases Constitution by <%= con %>. Enchanted Armoire: Independent Item.", "shieldArmoireSandyBucketText": "Sandy Bucket", "shieldArmoireSandyBucketNotes": "Good for storing all that Gold that you'll earn from completing tasks! Increases Perception by <%= per %>. Enchanted Armoire: Seaside Set (Item 3 of 3).", + "shieldArmoirePerchingFalconText": "Perching Falcon", + "shieldArmoirePerchingFalconNotes": "A falcon friend perches on your arm, prepared to swoop at your enemies. Increases Strength by <%= str %>. Enchanted Armoire: Falconer Set (Item 3 of 3).", "back": "Back Accessory", "backBase0Text": "No Back Accessory", diff --git a/common/script/content/appearance/backgrounds.js b/common/script/content/appearance/backgrounds.js index d6881f1458..df9e64c321 100644 --- a/common/script/content/appearance/backgrounds.js +++ b/common/script/content/appearance/backgrounds.js @@ -367,6 +367,20 @@ let backgrounds = { notes: t('backgroundDeepSeaNotes'), }, }, + backgrounds082016: { + idyllic_cabin: { + text: t('backgroundIdyllicCabinText'), + notes: t('backgroundIdyllicCabinNotes'), + }, + mountain_pyramid: { + text: t('backgroundMountainPyramidText'), + notes: t('backgroundMountainPyramidNotes'), + }, + stormy_ship: { + text: t('backgroundStormyShipText'), + notes: t('backgroundStormyShipNotes'), + }, + }, }; /* eslint-enable quote-props */ diff --git a/common/script/content/gear/sets/armoire.js b/common/script/content/gear/sets/armoire.js index 03a1a45e2d..6c69c5dc89 100644 --- a/common/script/content/gear/sets/armoire.js +++ b/common/script/content/gear/sets/armoire.js @@ -150,6 +150,14 @@ let armor = { set: 'cannoneer', canOwn: ownsItem('armor_armoire_cannoneerRags'), }, + falconerArmor: { + text: t('armorArmoireFalconerArmorText'), + notes: t('armorArmoireFalconerArmorNotes', { con: 10 }), + value: 100, + con: 10, + set: 'falconer', + canOwn: ownsItem('armor_armoire_falconerArmor'), + }, }; let eyewear = { @@ -380,6 +388,14 @@ let head = { set: 'cannoneer', canOwn: ownsItem('head_armoire_cannoneerBandanna'), }, + falconerCap: { + text: t('headArmoireFalconerCapText'), + notes: t('headArmoireFalconerCapNotes', { int: 10 }), + value: 100, + int: 10, + set: 'falconer', + canOwn: ownsItem('head_armoire_falconerCap'), + }, }; let shield = { @@ -440,6 +456,14 @@ let shield = { set: 'seaside', canOwn: ownsItem('shield_armoire_sandyBucket'), }, + perchingFalcon: { + text: t('shieldArmoirePerchingFalconText'), + notes: t('shieldArmoirePerchingFalconNotes', { str: 16 }), + value: 100, + str: 16, + set: 'falconer', + canOwn: ownsItem('shield_armoire_perchingFalcon'), + }, }; let headAccessory = { diff --git a/common/script/libs/shops.js b/common/script/libs/shops.js index 4eb581c0de..7a5f2b8e36 100644 --- a/common/script/libs/shops.js +++ b/common/script/libs/shops.js @@ -53,7 +53,7 @@ shops.getMarketCategories = function getMarket (user, language) { value: hatchingPotion.value, locked: false, currency: 'gems', - purchaseType: 'hatchingpotions', + purchaseType: 'hatchingPotions', }; }).sortBy('key').value(); categories.push(hatchingPotionsCategory); @@ -192,14 +192,6 @@ shops.getTimeTravelersCategories = function getTimeTravelersCategories (user, la // }; shops.getSeasonalShopCategories = function getSeasonalShopCategories (user, language) { let availableSets = { - summerWarrior: i18n.t('daringSwashbucklerSet', language), - summerMage: i18n.t('emeraldMermageSet', language), - summerHealer: i18n.t('reefSeahealerSet', language), - summerRogue: i18n.t('roguishPirateSet', language), - summer2015Warrior: i18n.t('sunfishWarriorSet', language), - summer2015Mage: i18n.t('shipSoothsayerSet', language), - summer2015Healer: i18n.t('strappingSailorSet', language), - summer2015Rogue: i18n.t('reefRenegadeSet', language), }; let categories = []; diff --git a/test/api/v3/integration/shops/GET-shops_seasonal.test.js b/test/api/v3/integration/shops/GET-shops_seasonal.test.js index 87f97ac111..722cb35665 100644 --- a/test/api/v3/integration/shops/GET-shops_seasonal.test.js +++ b/test/api/v3/integration/shops/GET-shops_seasonal.test.js @@ -15,7 +15,7 @@ describe('GET /shops/seasonal', () => { expect(shop.identifier).to.equal('seasonalShop'); expect(shop.text).to.eql(t('seasonalShop')); - expect(shop.notes).to.eql(t('seasonalShopSummerText')); + expect(shop.notes).to.eql(t('seasonalShopClosedText')); expect(shop.imageName).to.be.a('string'); expect(shop.categories).to.be.an('array'); }); diff --git a/website/server/controllers/api-v3/shops.js b/website/server/controllers/api-v3/shops.js index b9f4150ebb..69bfa6deb8 100644 --- a/website/server/controllers/api-v3/shops.js +++ b/website/server/controllers/api-v3/shops.js @@ -111,8 +111,8 @@ api.getSeasonalShopItems = { let resObject = { identifier: 'seasonalShop', text: res.t('seasonalShop'), - notes: res.t('seasonalShopSummerText'), - imageName: 'seasonalshop_open', + notes: res.t('seasonalShopClosedText'), + imageName: 'seasonalshop_closed', categories: shops.getSeasonalShopCategories(user, req.language), }; diff --git a/website/server/controllers/top-level/pages.js b/website/server/controllers/top-level/pages.js index b68f2976c4..8c1f9aff2e 100644 --- a/website/server/controllers/top-level/pages.js +++ b/website/server/controllers/top-level/pages.js @@ -8,7 +8,7 @@ const md = markdownIt({ let api = {}; -const TOTAL_USER_COUNT = '1,100,000'; +const TOTAL_USER_COUNT = '1,500,000'; const LOADING_SCREEN_TIPS = 32; api.getFrontPage = { diff --git a/website/views/shared/new-stuff.jade b/website/views/shared/new-stuff.jade index 1ce2ac9331..a7780e9ad3 100644 --- a/website/views/shared/new-stuff.jade +++ b/website/views/shared/new-stuff.jade @@ -1,42 +1,54 @@ -h2 8/1/2016 - TAKE THIS CHALLENGE AND GUILD SPOTLIGHT +h3 8/3/2016 - AUGUST BACKGROUNDS AND ARMOIRE ITEMS + .promo_backgrounds_armoire_201608.pull-right hr tr td - .promo_takethis_armor.pull-right - h3 New Take This Challenge - p The next Take This Challenge has launched, Cast of Characters, with a focus on picturing your feelings as characters in a story. Be sure to check it out to earn additional pieces of the Take This armor set! - br - p Take This is a nonprofit that seeks to inform the gamer community about mental health issues, to provide education about mental disorders and mental illness prevention, and to reduce the stigma of mental illness. - br - p Congratulations to the winners of the last Take This Challenge, "Check Your HP": grand prize winner bookguinea, and runners-up abbey, SeanXiaaa, pushkin89, fightorflight, and ProfDzul. Plus, all participants in that Challenge have received a piece of the Take This item set. Enjoy! - p.small.muted by Lemoness, SabreCat, Doctor B, and the Take This team + h3 AUGUST BACKGROUNDS + p We’ve added three new backgrounds: Stormy Ship, Idyllic Cabin, and Mountain Pyramid. Get them now from the Background Shop and show off your avatars in the Tavern! + p.small.muted by JInjooHat, KusSv, and Beffymaroo tr td - h3 GUILD SPOTLIGHT - p There's a new Guild Spotlight on the blog! Check it out now to learn about some awesome Habitica Guilds that highlight fun fandoms. - p.small.muted by Lemoness + h3 AUGUST ARMOIRE ITEMS: FALCONER SET + p There’s new Gold-purchasable equipment in the Enchanted Armoire, including the Falconer set. The Enchanted Armoire unlocks when you achieve Ultimate Gear. Better work hard on your real-life tasks to earn all the pieces! + p.small.muted by Mako413 if menuItem !== 'oldNews' hr a(href='/static/old-news', target='_blank') Read older news mixin oldNews - h2 7/31/2016 - HABITICA NAMING DAY AND GRYPHON PETS/MOUNTS! + h2 8/1/2016 - TAKE THIS CHALLENGE AND GUILD SPOTLIGHT tr td - span.Mount_Body_Gryphon-RoyalPurple.pull-right - span.Mount_Head_Gryphon-RoyalPurple.pull-right(style='margin:0') - h3 Habitica Naming Day - p Happy Habitica Naming day! In honor of the day when we changed the name of the app from HabitRPG to Habitica, we've given everyone an achievement, as well as some delicious cake for your pets and mounts. - p.small.muted by Lemoness and SabreCat - tr - td - .Pet-Gryphon-RoyalPurple.pull-right - h3 Habitica Gryphon Mount and Pet - p Speaking of pets and mounts, we've given all new users our Purple Gryphon Mount, Melior! If you already received Melior last year, we've given you his little sister Meliora, a Purple Gryphon Pet. You can find them in the Rare Pet/Rare Mount sections of the stable! + .promo_takethis_armor.pull-right + h3 New Take This Challenge + p The next Take This Challenge has launched, Cast of Characters, with a focus on picturing your feelings as characters in a story. Be sure to check it out to earn additional pieces of the Take This armor set! br - p Thanks for being a Habitica user -- you all mean so much to us. We hope that you enjoy your presents! - p.small.muted by Lemoness and Baconsaur + p Take This is a nonprofit that seeks to inform the gamer community about mental health issues, to provide education about mental disorders and mental illness prevention, and to reduce the stigma of mental illness. + br + p Congratulations to the winners of the last Take This Challenge, "Check Your HP": grand prize winner bookguinea, and runners-up abbey, SeanXiaaa, pushkin89, fightorflight, and ProfDzul. Plus, all participants in that Challenge have received a piece of the Take This item set. Enjoy! + p.small.muted by Lemoness, SabreCat, Doctor B, and the Take This team + tr + td + h3 GUILD SPOTLIGHT + p There's a new Guild Spotlight on the blog! Check it out now to learn about some awesome Habitica Guilds that highlight fun fandoms. + p.small.muted by Lemoness + h2 7/31/2016 - HABITICA NAMING DAY AND GRYPHON PETS/MOUNTS! + tr + td + span.Mount_Body_Gryphon-RoyalPurple.pull-right + span.Mount_Head_Gryphon-RoyalPurple.pull-right(style='margin:0') + h3 Habitica Naming Day + p Happy Habitica Naming day! In honor of the day when we changed the name of the app from HabitRPG to Habitica, we've given everyone an achievement, as well as some delicious cake for your pets and mounts. + p.small.muted by Lemoness and SabreCat + tr + td + .Pet-Gryphon-RoyalPurple.pull-right + h3 Habitica Gryphon Mount and Pet + p Speaking of pets and mounts, we've given all new users our Purple Gryphon Mount, Melior! If you already received Melior last year, we've given you his little sister Meliora, a Purple Gryphon Pet. You can find them in the Rare Pet/Rare Mount sections of the stable! + br + p Thanks for being a Habitica user -- you all mean so much to us. We hope that you enjoy your presents! + p.small.muted by Lemoness and Baconsaur h2 7/29/2016 - LAST CHANCE FOR SUMMER SPLASH; MOBILE UPDATES tr td