Merge branch 'release' into develop
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"version": "4.211.8",
|
||||
"version": "4.212.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
|
||||
"version": "4.211.8",
|
||||
"version": "4.212.0",
|
||||
"main": "./website/server/index.js",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.16.0",
|
||||
|
||||
@@ -198,7 +198,7 @@
|
||||
}
|
||||
.quest_moon1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1540px -220px;
|
||||
background-position: -1540px -440px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
@@ -234,7 +234,7 @@
|
||||
}
|
||||
.quest_nudibranch {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1540px -437px;
|
||||
background-position: -1540px -657px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
@@ -244,15 +244,21 @@
|
||||
width: 222px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_owl {
|
||||
.quest_onyx {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -880px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_owl {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1100px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_peacock {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1540px -654px;
|
||||
background-position: -1540px -874px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
@@ -264,25 +270,25 @@
|
||||
}
|
||||
.quest_pterodactyl {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1100px -892px;
|
||||
background-position: -1320px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_rat {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1320px 0px;
|
||||
background-position: -1320px -220px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_robot {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1320px -220px;
|
||||
background-position: -1320px -440px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_rock {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1540px -871px;
|
||||
background-position: -1540px -1091px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
@@ -294,43 +300,43 @@
|
||||
}
|
||||
.quest_ruby {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1320px -440px;
|
||||
background-position: -1320px -660px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_sabretooth {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1320px -660px;
|
||||
background-position: -1320px -880px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_seaserpent {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1320px -880px;
|
||||
background-position: 0px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_sheep {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: 0px -1112px;
|
||||
background-position: -220px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_silver {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -220px -1112px;
|
||||
background-position: -440px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_slime {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -440px -1112px;
|
||||
background-position: -660px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_sloth {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -660px -1112px;
|
||||
background-position: -880px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
@@ -354,7 +360,7 @@
|
||||
}
|
||||
.quest_squirrel {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -880px -1112px;
|
||||
background-position: -1100px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
@@ -366,19 +372,19 @@
|
||||
}
|
||||
.quest_stoikalmCalamity2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1100px -1112px;
|
||||
background-position: -1320px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_stoikalmCalamity3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1320px -1112px;
|
||||
background-position: -1540px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_stone {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1540px 0px;
|
||||
background-position: -1540px -220px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
@@ -388,9 +394,3 @@
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
.quest_taskwoodsTerror2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1540px -1088px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 437 KiB After Width: | Height: | Size: 438 KiB |
|
Before Width: | Height: | Size: 238 KiB After Width: | Height: | Size: 242 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 165 KiB |
|
Before Width: | Height: | Size: 139 KiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 139 KiB |
|
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 178 KiB |
|
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 150 KiB |
|
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 151 KiB |
|
Before Width: | Height: | Size: 149 KiB After Width: | Height: | Size: 151 KiB |
|
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 151 KiB |
|
Before Width: | Height: | Size: 165 KiB After Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 181 KiB After Width: | Height: | Size: 179 KiB |
|
Before Width: | Height: | Size: 174 KiB After Width: | Height: | Size: 175 KiB |
|
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 166 KiB |
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 111 KiB |
@@ -53,6 +53,7 @@
|
||||
<div
|
||||
v-if="currentEvent && currentEvent.promo && currentEvent.promo === 'g1g1'"
|
||||
class="gift-promo-banner d-flex justify-content-around align-items-center px-4"
|
||||
@click="showSelectUser"
|
||||
>
|
||||
<div
|
||||
v-once
|
||||
@@ -313,6 +314,7 @@
|
||||
width: 100%;
|
||||
height: 5rem;
|
||||
background-image: linear-gradient(90deg, $teal-50 0%, $purple-400 100%);
|
||||
cursor: pointer;
|
||||
|
||||
.announce-text {
|
||||
color: $white;
|
||||
@@ -471,6 +473,10 @@ export default {
|
||||
close () {
|
||||
this.$root.$emit('bv::hide::modal', 'buy-gems');
|
||||
},
|
||||
showSelectUser () {
|
||||
this.$root.$emit('bv::show::modal', 'select-user-modal');
|
||||
this.close();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
<div
|
||||
v-if="$route.name === 'subscription' && promo === 'g1g1'"
|
||||
class="g1g1-banner d-flex justify-content-center"
|
||||
@click="showSelectUser"
|
||||
>
|
||||
<div
|
||||
v-once
|
||||
@@ -91,6 +92,7 @@
|
||||
width: 100%;
|
||||
height: 5.75rem;
|
||||
background-image: linear-gradient(90deg, $teal-50 0%, $purple-400 100%);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.left-gift {
|
||||
@@ -133,5 +135,10 @@ export default {
|
||||
return this.currentEvent.promo;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
showSelectUser () {
|
||||
this.$root.$emit('bv::show::modal', 'select-user-modal');
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -307,6 +307,7 @@
|
||||
"hatchingPotionSunset": "Sunset",
|
||||
"hatchingPotionMoonglow": "Moonglow",
|
||||
"hatchingPotionSolarSystem": "Solar System",
|
||||
"hatchingPotionOnyx": "Onyx",
|
||||
|
||||
"hatchingPotionNotes": "Pour this on an egg, and it will hatch as a <%= potText(locale) %> pet.",
|
||||
"premiumPotionAddlNotes": "Not usable on quest pet eggs. Available for purchase until <%= date(locale) %>.",
|
||||
|
||||
@@ -858,5 +858,14 @@
|
||||
"questSolarSystemCompletion": "Through careful practice, you and the crew manage to keep the Diversionoids from sweeping you overboard, just by noticing and acknowledging them without letting them take over. As you pass safely by the pulsing star, @gawrone notices a cluster of floating bottles and pulls them aboard. Each appears to contain a tiny solar system!<br><br>“Well, looks like our hard work has brought us some fine rewards!” says @beffymaroo. “Let’s see what celestial wonders might appear if we hatch pet eggs with these new potions.”",
|
||||
"questSolarSystemBoss": "Diversionoids",
|
||||
"questSolarSystemDropSolarSystemPotion": "Solar System Hatching Potion",
|
||||
"questSolarSystemUnlockText": "Unlocks Solar System Hatching Potions for purchase in the Market"
|
||||
"questSolarSystemUnlockText": "Unlocks Solar System Hatching Potions for purchase in the Market",
|
||||
|
||||
"questOnyxText": "The Onyx Odyssey",
|
||||
"questOnyxNotes": "@Vikte, @aspiring_advocate, and @starsystemic know you’ve been feeling unmotivated lately and decide that a fun day out might boost your mood. However, “fun” apparently means going deep-sea diving to search the Dark Crevasse for treasure! You don your diving gear, board the boat, and row towards the ancient city of Dilatory. As you travel, you ask them what kind of treasure you’re looking for.<br><br>“Pluto runes!” says @Vikte.<br><br>“No, Leo runes!” says @aspiring_advocate.<br><br>“No, onyx stones!” says @starsystemic.<br><br>As they argue among themselves, you look into the ocean and see the cave entrance directly below you! Excited, you jump up, and dive into the sea, leaving the trio to watch as you swim towards the Dark Crevasse to search for the treasure yourself.",
|
||||
"questOnyxCompletion": "As you enter the Dark Crevasse, the mantis shrimps that live there dart away, seemingly scared of you. However, they quickly return carrying small coloured orbs, and you realise that these are the treasures that the others wanted! You pocket a healthy collection of each type, say goodbye to the shrimps, and head back to the boat where the others help you aboard.<br><br>“Where have you been?” @Vikte exclaims. In response you show them the treasure you’ve collected.<br><br>“These ingredients make Onyx Magic Hatching Potions!”, @aspiring_advocate says excitedly as you begin to head back to shore.<br><br>“So… we can hatch Onyx pets!” @starsystemic smiles. “Didn’t we say this would be fun?”<br><br>You smile back, excited for your new pets, and ready to finish your tasks!",
|
||||
"questOnyxCollectPlutoRunes": "Pluto Runes",
|
||||
"questOnyxCollectLeoRunes": "Leo Runes",
|
||||
"questOnyxCollectOnyxStones": "Onyx Stones",
|
||||
"questOnyxDropOnyxPotion": "Onyx Hatching Potion",
|
||||
"questOnyxUnlockText": "Unlocks Mossy Onyx Hatching Potions for purchase in the Market"
|
||||
}
|
||||
|
||||
@@ -508,6 +508,13 @@ const premium = {
|
||||
canBuy: hasQuestAchievementFunction('solarSystem'),
|
||||
_addlNotes: t('premiumPotionUnlimitedNotes'),
|
||||
},
|
||||
Onyx: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionOnyx'),
|
||||
limited: true,
|
||||
canBuy: hasQuestAchievementFunction('onyx'),
|
||||
_addlNotes: t('premiumPotionUnlimitedNotes'),
|
||||
},
|
||||
};
|
||||
|
||||
const wacky = {
|
||||
|
||||
@@ -3839,6 +3839,47 @@ const quests = {
|
||||
unlock: t('questSolarSystemUnlockText'),
|
||||
},
|
||||
},
|
||||
onyx: {
|
||||
text: t('questOnyxText'),
|
||||
notes: t('questOnyxNotes'),
|
||||
completion: t('questOnyxCompletion'),
|
||||
value: 4,
|
||||
category: 'hatchingPotion',
|
||||
collect: {
|
||||
onyxStone: {
|
||||
text: t('questOnyxCollectOnyxStones'),
|
||||
count: 25,
|
||||
},
|
||||
plutoRune: {
|
||||
text: t('questOnyxCollectPlutoRunes'),
|
||||
count: 10,
|
||||
},
|
||||
leoRune: {
|
||||
text: t('questOnyxCollectLeoRunes'),
|
||||
count: 10,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Onyx',
|
||||
text: t('questOnyxDropOnyxPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Onyx',
|
||||
text: t('questOnyxDropOnyxPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Onyx',
|
||||
text: t('questOnyxDropOnyxPotion'),
|
||||
},
|
||||
],
|
||||
gp: 50,
|
||||
exp: 100,
|
||||
unlock: t('questOnyxUnlockText'),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
each(quests, (v, key) => {
|
||||
|
||||
@@ -1,29 +1,9 @@
|
||||
import moment from 'moment';
|
||||
// import moment from 'moment';
|
||||
// Magic Hatching Potions are configured like this:
|
||||
// type: 'premiumHatchingPotion', // note no "s" at the end
|
||||
// path: 'premiumHatchingPotions.Rainbow',
|
||||
const featuredItems = {
|
||||
market () {
|
||||
if (moment().isBefore('2021-10-31T20:00-04:00')) {
|
||||
return [
|
||||
{
|
||||
type: 'armoire',
|
||||
path: 'armoire',
|
||||
},
|
||||
{
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.Glow',
|
||||
},
|
||||
{
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.Spooky',
|
||||
},
|
||||
{
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.Vampire',
|
||||
},
|
||||
];
|
||||
}
|
||||
return [
|
||||
{
|
||||
type: 'armoire',
|
||||
@@ -51,7 +31,7 @@ const featuredItems = {
|
||||
},
|
||||
{
|
||||
type: 'quests',
|
||||
path: 'quests.horse',
|
||||
path: 'quests.onyx',
|
||||
},
|
||||
{
|
||||
type: 'quests',
|
||||
|
||||
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 490 B |
|
After Width: | Height: | Size: 450 B |
|
After Width: | Height: | Size: 460 B |
|
After Width: | Height: | Size: 830 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 818 B |
|
After Width: | Height: | Size: 743 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 766 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 720 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 1011 B |
|
After Width: | Height: | Size: 1019 B |
|
After Width: | Height: | Size: 939 B |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 853 B |
|
After Width: | Height: | Size: 981 B |
|
After Width: | Height: | Size: 685 B |
|
After Width: | Height: | Size: 908 B |
|
After Width: | Height: | Size: 887 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 923 B |
|
After Width: | Height: | Size: 1009 B |
|
After Width: | Height: | Size: 945 B |
|
After Width: | Height: | Size: 814 B |
|
After Width: | Height: | Size: 699 B |
|
After Width: | Height: | Size: 885 B |
|
After Width: | Height: | Size: 905 B |
|
After Width: | Height: | Size: 727 B |
|
After Width: | Height: | Size: 781 B |
|
After Width: | Height: | Size: 743 B |
|
After Width: | Height: | Size: 840 B |
|
After Width: | Height: | Size: 966 B |
|
After Width: | Height: | Size: 553 B |