feat(content): Kangaroo Pet Quest

This commit is contained in:
Sabe Jones
2018-08-16 14:40:09 -05:00
parent b0e4c2cb11
commit 0142e332e8
55 changed files with 94 additions and 25 deletions

View File

@@ -15,22 +15,22 @@
// Show avatar only if not currently affected by visual buff
template(v-if="showAvatar()")
span(:class="'chair_' + member.preferences.chair")
span(:class="getGearClass('back')")
span(:class="skinClass")
span(:class="member.preferences.size + '_shirt_' + member.preferences.shirt")
span.head_0
span(:class="member.preferences.size + '_' + getGearClass('armor')")
span(:class="getGearClass('back_collar')")
span(:class="['chair_' + member.preferences.chair, specialMountClass]")
span(:class="[getGearClass('back'), specialMountClass]")
span(:class="[skinClass, specialMountClass]")
span(:class="[member.preferences.size + '_shirt_' + member.preferences.shirt, specialMountClass]")
span(:class="['head_0', specialMountClass]")
span(:class="[member.preferences.size + '_' + getGearClass('armor'), specialMountClass]")
span(:class="[getGearClass('back_collar'), specialMountClass]")
template(v-for="type in ['bangs', 'base', 'mustache', 'beard']")
span(:class="'hair_' + type + '_' + member.preferences.hair[type] + '_' + member.preferences.hair.color")
span(:class="getGearClass('body')")
span(:class="getGearClass('eyewear')")
span(:class="getGearClass('head')")
span(:class="getGearClass('headAccessory')")
span(:class="'hair_flower_' + member.preferences.hair.flower")
span(v-if="!hideGear('shield')", :class="getGearClass('shield')")
span(v-if="!hideGear('weapon')", :class="getGearClass('weapon')")
span(:class="['hair_' + type + '_' + member.preferences.hair[type] + '_' + member.preferences.hair.color, specialMountClass]")
span(:class="[getGearClass('body'), specialMountClass]")
span(:class="[getGearClass('eyewear'), specialMountClass]")
span(:class="[getGearClass('head'), specialMountClass]")
span(:class="[getGearClass('headAccessory'), specialMountClass]")
span(:class="['hair_flower_' + member.preferences.hair.flower, specialMountClass]")
span(v-if="!hideGear('shield')", :class="[getGearClass('shield'), specialMountClass]")
span(v-if="!hideGear('weapon')", :class="[getGearClass('weapon'), specialMountClass]")
// Resting
span.zzz(v-if="member.preferences.sleep")
@@ -67,6 +67,10 @@
bottom: 0px;
left: 0px;
}
.offset-kangaroo {
margin-top: 24px;
}
</style>
<script>
@@ -172,6 +176,11 @@ export default {
costumeClass () {
return this.member.preferences.costume ? 'costume' : 'equipped';
},
specialMountClass () {
if (!this.avatarOnly && this.member.items.currentMount && this.member.items.currentMount.indexOf('Kangaroo') !== -1) {
return 'offset-kangaroo';
}
},
},
methods: {
getGearClass (gearType) {

View File

@@ -225,19 +225,23 @@
"questEggPterodactylText": "Pterodactyl",
"questEggPterodactylMountText": "Pterodactyl",
"questEggPterodactylAdjective": "trusting",
"questEggPterodactylAdjective": "a trusting",
"questEggBadgerText": "Badger",
"questEggBadgerMountText": "Badger",
"questEggBadgerAdjective": "bustling",
"questEggBadgerAdjective": "a bustling",
"questEggSquirrelText": "Squirrel",
"questEggSquirrelMountText": "Squirrel",
"questEggSquirrelAdjective": "bushy-tailed",
"questEggSquirrelAdjective": "a bushy-tailed",
"questEggSeaSerpentText": "Sea Serpent",
"questEggSeaSerpentMountText": "Sea Serpent",
"questEggSeaSerpentAdjective": "shimmering",
"questEggSeaSerpentAdjective": "a shimmering",
"questEggKangarooText": "Kangaroo",
"questEggKangarooMountText": "Kangaroo",
"questEggKangarooAdjective": "a keen",
"eggNotes": "Find a hatching potion to pour on this egg, and it will hatch into <%= eggAdjective(locale) %> <%= eggText(locale) %>.",

View File

@@ -707,5 +707,12 @@
"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"
"questSeaSerpentUnlockText": "Unlocks purchasable Sea Serpent eggs in the Market",
"questKangarooText": "Kangaroo Catastrophe",
"questKangarooNotes": "Maybe you should have finished that last task… you know, the one you keep avoiding, even though it always comes back around? But @Mewrose and @LilithofAlfheim invited you and @stefalupagus to see a rare kangaroo troop hopping through the Sloensteadi Savannah; how could you say no?! As the troop comes into view, something hits you on the back of the head with a mighty <em>whack!</em><br><br>Shaking the stars from your vision, you pick up the responsible object--a dark red boomerang, with the very task you continually push back etched into its surface. A quick glance around confirms the rest of your party met a similar fate. One larger kangaroo looks at you with a smug grin, like shes daring you to face her and that dreaded task once and for all!",
"questKangarooCompletion": "“NOW!” You signal your party to throw the boomerangs back at the kangaroo. The beast hops further away with each hit until she flees, leaving nothing more than a dark red cloud of dust, a few eggs, and some gold coins.<br><br>@Mewrose walks forward to where the kangaroo once stood. “Hey, where did the boomerangs go?”<br><br>“They probably dissolved into dust, making that dark red cloud, when we finished our respective tasks,” @stefalupagus speculates.<br><br>@LilithofAlfheim squints at the horizon. “Is that another kangaroo troop heading our way?”<br><br>You all break into a run back to Habit City. Better to face your difficult tasks than take another lump to the back of the head!",
"questKangarooBoss": "Catastrophic Kangaroo",
"questKangarooDropKangarooEgg": "Kangaroo (Egg)",
"questKangarooUnlockText": "Unlocks purchasable Kangaroo eggs in the Market"
}

View File

@@ -362,6 +362,12 @@ let quests = {
adjective: t('questEggSeaSerpentAdjective'),
canBuy: hasQuestAchievementFunction('seaserpent'),
},
Kangaroo: {
text: t('questEggKangarooText'),
mountText: t('questEggKangarooMountText'),
adjective: t('questEggKangarooAdjective'),
canBuy: hasQuestAchievementFunction('kangaroo'),
},
};
applyEggDefaults(drops, {

View File

@@ -3257,6 +3257,38 @@ let quests = {
unlock: t('questSeaSerpentUnlockText'),
},
},
kangaroo: {
text: t('questKangarooText'),
notes: t('questKangarooNotes'),
completion: t('questKangarooCompletion'),
value: 4,
category: 'pet',
boss: {
name: t('questKangarooBoss'),
hp: 700,
str: 2,
},
drop: {
items: [
{
type: 'eggs',
key: 'Kangaroo',
text: t('questKangarooDropKangarooEgg'),
}, {
type: 'eggs',
key: 'Kangaroo',
text: t('questKangarooDropKangarooEgg'),
}, {
type: 'eggs',
key: 'Kangaroo',
text: t('questKangarooDropKangarooEgg'),
},
],
gp: 49,
exp: 425,
unlock: t('questKangarooUnlockText'),
},
},
};
each(quests, (v, key) => {

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 760 B

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 773 B

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 B

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 786 B

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 802 B

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 802 B

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 714 B

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 864 B

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 773 B

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 806 B

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1005 B

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 756 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 789 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 765 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 759 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 849 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -3,7 +3,7 @@ import { authWithHeaders } from '../../middlewares/auth';
let api = {};
// @TODO export this const, cannot export it from here because only routes are exported from controllers
const LAST_ANNOUNCEMENT_TITLE = 'OFFICIAL CHALLENGE: BACK-TO-SCHOOL PREPARATION!';
const LAST_ANNOUNCEMENT_TITLE = 'NEW PET QUEST: KANGAROOS! PLUS SPOTLIGHT ON HABITICA COMMUNITY INVOLVEMENT';
const worldDmg = { // @TODO
bailey: false,
};
@@ -30,17 +30,28 @@ api.getNews = {
<div class="mr-3 ${baileyClass}"></div>
<div class="media-body">
<h1 class="align-self-center">${res.t('newStuff')}</h1>
<h2>8/8/2018 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
<h2>8/16/2018 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
</div>
</div>
<hr/>
<div class="media align-items-center">
<div class="media-body">
<p>The school year is looming large for many scholarly Habiticans, so we've prepared <a href='/challenges/0acb1d56-1660-41a4-af80-9259f080b62b' target='_blank'>a special Back-to-School Challenge</a> to help with the transition between summer and semester. Check it out now for a chance to win: five lucky winners will get a badge for their profile and their choice of a <a href='https://habitica.wikia.com/wiki/Subscription' target='_blank'>gift subscription</a> or Gems!</p>
<div class="small mb-3">by Beffymaroo</div>
<h3>New Pet Quest: Kangaroo Catastrophe!</h3>
<p>Ever feel like you've dodged a dreaded task, but it just comes back around to brain you like a whirling boomerang? Get the latest pet quest, "Kangaroo Catastrophe," from the <a href='/shops/quests' target='_blank'>Quest Shop</a> and earn some keen kangaroo pets by completing those real-life tasks!</p>
<div class="small">Art by stefalupagus, mewrose, LilithofAlfheim, ChrisSpatzerl, Willow the Witty, tricksy.fox, and Beffymaroo</div>
<div class="small mb-3">Writing by summra and SabreCat</div>
</div>
<div class="scene_reading ml-3 mb-3"></div>
<div class="promo_kangaroo ml-3 mb-3"></div>
</div>
<div class="media align-items-center">
<div class="scene_tavern mr-3"></div>
<div class="media-body">
<h3>Use Case Spotlight and Guild Spotlight on Getting Involved with Habitica's Community</h3>
<p>We've got new posts on the blog all about ways to get involved with Habitica's community! First, there's a <a href='https://habitica.wordpress.com/2018/08/16/getting-involved-in-habitica-guilds-for-contributing/' target='_blank'>Guild Spotlight</a> that highlights the Guilds that can help you earn a place as an esteemed Habitica contributor. We've also posted a <a href='https://habitica.wordpress.com/2018/08/16/use-case-spotlight-get-involved-in-the-habitica-community/' target='_blank'>Use Case Spotlight</a> featuring a number of great suggestions for other ways to get involved with contributing or simply getting social on the site and apps! These suggestions were submitted by Habiticans in the <a href='/groups/guild/1d3a10bf-60aa-4806-a38b-82d1084a59e6' target='_blank'>Use Case Spotlights Guild</a>.</p>
</div>
</div>
<p>Plus, we're collecting user submissions for the next Use Case Spotlight! How do you use Habitica as you learn practical and hands-on skills? Well be featuring player-submitted examples in Use Case Spotlights on the Habitica Blog next month, so post your suggestions in the Use Case Spotlight Guild now. We look forward to learning more about how you use Habitica to improve your life and get things done!</p>
<div class="small mb-3">by shanaqui</div>
</div>
`,
});