feat(content): Sea Serpent Pet Quest

This commit is contained in:
Sabe Jones
2018-07-17 14:05:09 -05:00
parent 034c0c9bb5
commit 7034d135d5
50 changed files with 57 additions and 9 deletions

View File

@@ -235,6 +235,10 @@
"questEggSquirrelMountText": "Squirrel", "questEggSquirrelMountText": "Squirrel",
"questEggSquirrelAdjective": "bushy-tailed", "questEggSquirrelAdjective": "bushy-tailed",
"questEggSeaSerpentText": "Sea Serpent",
"questEggSeaSerpentMountText": "Sea Serpent",
"questEggSeaSerpentAdjective": "shimmering",
"eggNotes": "Find a hatching potion to pour on this egg, and it will hatch into <%= eggAdjective(locale) %> <%= eggText(locale) %>.", "eggNotes": "Find a hatching potion to pour on this egg, and it will hatch into <%= eggAdjective(locale) %> <%= eggText(locale) %>.",
"hatchingPotionBase": "Base", "hatchingPotionBase": "Base",

View File

@@ -700,5 +700,12 @@
"cuddleBuddiesNotes": "Contains 'The Killer Bunny', 'The Nefarious Ferret', and 'The Guinea Pig Gang'. Available until May 31.", "cuddleBuddiesNotes": "Contains 'The Killer Bunny', 'The Nefarious Ferret', and 'The Guinea Pig Gang'. Available until May 31.",
"aquaticAmigosText": "Aquatic Amigos Quest Bundle", "aquaticAmigosText": "Aquatic Amigos Quest Bundle",
"aquaticAmigosNotes": "Contains 'The Magical Axolotl', 'The Kraken of Inkomplete', and 'The Call of Octothulu'. Available until June 30." "aquaticAmigosNotes": "Contains 'The Magical Axolotl', 'The Kraken of Inkomplete', and 'The Call of Octothulu'. Available until June 30.",
"questSeaSerpentText": "Danger in the Depths: Sea Serpent Strike!",
"questSeaSerpentNotes": "Your streaks have you feeling lucky—its the perfect time for a trip to the seahorse racetrack. You board the submarine at Diligent Docks and settle in for the trip to Dilatory, but youve barely submerged when an impact rocks the sub, sending its occupants tumbling. “Whats going on?” @AriesFaries shouts.<br><br>You glance through a nearby porthole and are shocked by the wall of shimmering scales passing by it. “Sea serpent!” Captain @Witticaster calls through the intercom. “Brace yourselves, its coming round again!” As you grip the arms of your seat, your unfinished tasks flash before your eyes. Maybe if we work together and complete them, you think, we can drive this monster away!",
"questSeaSerpentCompletion": "Battered by your commitment, the sea serpent flees, disappearing into the depths. When you arrive in Dilatory, you breathe a sigh of relief before noticing @*~Seraphina~ approaching with three translucent eggs cradled in her arms. “Here, you should have these,” she says. “You know how to handle a sea serpent!” As you accept the eggs, you vow anew to remain steadfast in completing your tasks to ensure that theres not a repeat occurrence.",
"questSeaSerpentBoss": "The Mighty Sea Serpent",
"questSeaSerpentDropSeaSerpentEgg": "Sea Serpent (Egg)",
"questSeaSerpentUnlockText": "Unlocks purchasable Sea Serpent eggs in the Market"
} }

View File

@@ -356,6 +356,12 @@ let quests = {
adjective: t('questEggSquirrelAdjective'), adjective: t('questEggSquirrelAdjective'),
canBuy: hasQuestAchievementFunction('squirrel'), canBuy: hasQuestAchievementFunction('squirrel'),
}, },
SeaSerpent: {
text: t('questEggSeaSerpentText'),
mountText: t('questEggSeaSerpentMountText'),
adjective: t('questEggSeaSerpentAdjective'),
canBuy: hasQuestAchievementFunction('seaserpent'),
},
}; };
applyEggDefaults(drops, { applyEggDefaults(drops, {

View File

@@ -3225,6 +3225,38 @@ let quests = {
unlock: t('questSquirrelUnlockText'), unlock: t('questSquirrelUnlockText'),
}, },
}, },
seaserpent: {
text: t('questSeaSerpentText'),
notes: t('questSeaSerpentNotes'),
completion: t('questSeaSerpentCompletion'),
value: 4,
category: 'pet',
boss: {
name: t('questSeaSerpentBoss'),
hp: 1200,
str: 2.5,
},
drop: {
items: [
{
type: 'eggs',
key: 'SeaSerpent',
text: t('questSeaSerpentDropSeaSerpentEgg'),
}, {
type: 'eggs',
key: 'SeaSerpent',
text: t('questSeaSerpentDropSeaSerpentEgg'),
}, {
type: 'eggs',
key: 'SeaSerpent',
text: t('questSeaSerpentDropSeaSerpentEgg'),
},
],
gp: 80,
exp: 800,
unlock: t('questSeaSerpentUnlockText'),
},
},
}; };
each(quests, (v, key) => { each(quests, (v, key) => {

View File

@@ -23,7 +23,7 @@ const featuredItems = {
quests: [ quests: [
{ {
type: 'quests', type: 'quests',
path: 'quests.dilatory_derby', path: 'quests.seaserpent',
}, },
{ {
type: 'quests', type: 'quests',

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 843 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 767 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 778 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 761 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1013 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 975 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 785 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 963 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View File

@@ -3,7 +3,7 @@ import { authWithHeaders } from '../../middlewares/auth';
let api = {}; let api = {};
// @TODO export this const, cannot export it from here because only routes are exported from controllers // @TODO export this const, cannot export it from here because only routes are exported from controllers
const LAST_ANNOUNCEMENT_TITLE = 'iOS APP UPDATE!'; const LAST_ANNOUNCEMENT_TITLE = 'NEW PET QUEST: SEA SERPENT!';
const worldDmg = { // @TODO const worldDmg = { // @TODO
bailey: false, bailey: false,
}; };
@@ -30,18 +30,17 @@ api.getNews = {
<div class="mr-3 ${baileyClass}"></div> <div class="mr-3 ${baileyClass}"></div>
<div class="media-body"> <div class="media-body">
<h1 class="align-self-center">${res.t('newStuff')}</h1> <h1 class="align-self-center">${res.t('newStuff')}</h1>
<h2>7/16/2018 - ${LAST_ANNOUNCEMENT_TITLE}</h2> <h2>7/17/2018 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
</div> </div>
</div> </div>
<hr/> <hr/>
<div class="media align-items-center"> <div class="media align-items-center">
<div class="media-body"> <div class="media-body">
<p>We've updated our <a href='https://itunes.apple.com/us/app/habitica-gamified-taskmanager/id994882113?mt=8' target='_blank'>iOS app</a>! Lots of pages have been upgraded, including Tasks, Equipment, Guilds, and Parties. Weve also added sound effects, hooray! You can now also delete your account from within the app. We also smashed a number of pesky bugs, including display issues with Parties, Items, and backgrounds, some bugs with To-Do due dates and more!</p> <p>A submersible expedition launching from the Diligent Docks turns to danger when a mighty Sea Serpent swims into the picture! Get the latest pet quest, <a href="/shops/quests" target="_blank">Danger in the Depths: Sea Serpent Strike!</a>, and earn some shimmering Sea Serpent pets by completing your real-life tasks.</p>
<p>We hope you enjoy the update! Be sure to download it now for a better Habitica experience.</p> <div class="small">Art by Aries Faries, Witticaster, *~Seraphina~, Mara, and 1920-kun</div>
<p>If you like the improvements that weve been making to our app, please consider reviewing this new version. It really helps us out! Old reviews get hidden with each update, but if you go to the review section you can re-post them again with a single tap.</p> <div class="small mb-3">Writing by gwyllgi</div>
<div class="small mb-3">by viirus and piyo</div>
</div> </div>
<div class="promo_ios ml-3 mb-3"></div> <div class="promo_seaserpent ml-3 mb-3"></div>
</div> </div>
</div> </div>
`, `,