Merge branch 'release' into develop

This commit is contained in:
SabreCat
2021-12-21 15:34:24 -06:00
52 changed files with 8944 additions and 8919 deletions
+2 -2
View File
@@ -131,8 +131,8 @@ gulp.task('sprites:clean', done => {
clean(`${IMG_DIST_PATH}spritesmith*,${CSS_DIST_PATH}spritesmith*}`, done);
});
gulp.task('sprites:checkCompiledDimensions', gulp.series('sprites:main', 'sprites:largeSprites', done => {
console.log('Verifiying that images do not exceed max dimensions'); // eslint-disable-line no-console
gulp.task('sprites:checkCompiledDimensions', gulp.series('sprites:main', done => {
console.log('Verifying that images do not exceed max dimensions'); // eslint-disable-line no-console
let numberOfSheetsThatAreTooBig = 0;
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "habitica",
"version": "4.214.5",
"version": "4.215.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.214.5",
"version": "4.215.0",
"main": "./website/server/index.js",
"dependencies": {
"@babel/core": "^7.16.0",
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,126 +1,168 @@
.quest_bunny {
.quest_atom3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -1546px;
width: 210px;
height: 186px;
background-position: -211px -1543px;
width: 216px;
height: 180px;
}
.quest_butterfly {
.quest_axolotl {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px 0px;
width: 219px;
height: 219px;
}
.quest_cheetah {
.quest_badger {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px 0px;
width: 219px;
height: 219px;
}
.quest_cow {
.quest_basilist {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1760px 0px;
width: 174px;
height: 213px;
background-position: -1544px -1332px;
width: 189px;
height: 141px;
}
.quest_dilatory {
.quest_beetle {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -232px;
width: 219px;
height: 219px;
background-position: -211px -1332px;
width: 204px;
height: 201px;
}
.quest_dilatoryDistress1 {
.quest_blackPearl {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -222px -1332px;
width: 210px;
height: 210px;
background-position: -1540px -214px;
width: 216px;
height: 216px;
}
.quest_dilatoryDistress2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1760px -422px;
width: 150px;
height: 150px;
}
.quest_dilatoryDistress3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -232px;
width: 219px;
height: 219px;
}
.quest_dilatory_derby {
.quest_bronze {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -232px;
width: 219px;
height: 219px;
}
.quest_dolphin {
.quest_bunny {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px 0px;
background-position: 0px -1543px;
width: 210px;
height: 186px;
}
.quest_butterfly {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -232px;
width: 219px;
height: 219px;
}
.quest_dustbunnies {
.quest_cheetah {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -232px;
width: 219px;
height: 219px;
}
.quest_cow {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1762px 0px;
width: 174px;
height: 213px;
}
.quest_dilatory {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px -220px;
width: 219px;
height: 219px;
}
.quest_egg {
.quest_dilatoryDistress1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1760px -214px;
width: 165px;
height: 207px;
background-position: 0px -1332px;
width: 210px;
height: 210px;
}
.quest_evilsanta {
.quest_dilatoryDistress2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1760px -724px;
width: 118px;
height: 131px;
background-position: -1762px -422px;
width: 150px;
height: 150px;
}
.quest_evilsanta2 {
.quest_dilatoryDistress3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -452px;
width: 219px;
height: 219px;
}
.quest_falcon {
.quest_dilatory_derby {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px 0px;
width: 219px;
height: 219px;
}
.quest_dolphin {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -452px;
width: 219px;
height: 219px;
}
.quest_ferret {
.quest_dustbunnies {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -452px;
width: 219px;
height: 219px;
}
.quest_fluorite {
.quest_egg {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1762px -214px;
width: 165px;
height: 207px;
}
.quest_evilsanta {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1762px -724px;
width: 118px;
height: 131px;
}
.quest_evilsanta2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px -452px;
width: 219px;
height: 219px;
}
.quest_frog {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -1332px;
width: 221px;
height: 213px;
}
.quest_ghost_stag {
.quest_falcon {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px 0px;
width: 219px;
height: 219px;
}
.quest_goldenknight1 {
.quest_ferret {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px -220px;
width: 219px;
height: 219px;
}
.quest_fluorite {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px -440px;
width: 219px;
height: 219px;
}
.quest_frog {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px 0px;
width: 221px;
height: 213px;
}
.quest_ghost_stag {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -672px;
width: 219px;
height: 219px;
}
.quest_goldenknight1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -672px;
width: 219px;
height: 219px;
}
.quest_goldenknight2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -211px -1546px;
background-position: -1293px -1332px;
width: 250px;
height: 150px;
}
@@ -132,259 +174,217 @@
}
.quest_gryphon {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -876px -1332px;
background-position: -859px -1332px;
width: 216px;
height: 177px;
}
.quest_guineapig {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px -440px;
background-position: -440px -672px;
width: 219px;
height: 219px;
}
.quest_harpy {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -672px;
background-position: -660px -672px;
width: 219px;
height: 219px;
}
.quest_hedgehog {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -433px -1332px;
background-position: -416px -1332px;
width: 219px;
height: 186px;
}
.quest_hippo {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -672px;
background-position: -880px -672px;
width: 219px;
height: 219px;
}
.quest_horse {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -672px;
background-position: -1100px 0px;
width: 219px;
height: 219px;
}
.quest_kangaroo {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px -672px;
background-position: -1100px -220px;
width: 219px;
height: 219px;
}
.quest_kraken {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1093px -1332px;
background-position: -1076px -1332px;
width: 216px;
height: 177px;
}
.quest_lostMasterclasser1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px -672px;
background-position: -1100px -440px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1100px 0px;
background-position: -1100px -660px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1100px -220px;
background-position: 0px -892px;
width: 219px;
height: 219px;
}
.quest_mayhemMistiflying1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1760px -573px;
background-position: -1762px -573px;
width: 150px;
height: 150px;
}
.quest_mayhemMistiflying2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1100px -440px;
background-position: -220px -892px;
width: 219px;
height: 219px;
}
.quest_mayhemMistiflying3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1100px -660px;
background-position: -440px -892px;
width: 219px;
height: 219px;
}
.quest_monkey {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -892px;
background-position: -660px -892px;
width: 219px;
height: 219px;
}
.quest_moon1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px -220px;
background-position: -1540px -431px;
width: 216px;
height: 216px;
}
.quest_moon2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -892px;
background-position: -880px -892px;
width: 219px;
height: 219px;
}
.quest_moon3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -892px;
background-position: -1100px -892px;
width: 219px;
height: 219px;
}
.quest_moonstone1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px -892px;
background-position: -1320px 0px;
width: 219px;
height: 219px;
}
.quest_moonstone2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px -892px;
background-position: -1320px -220px;
width: 219px;
height: 219px;
}
.quest_moonstone3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1100px -892px;
background-position: -1320px -440px;
width: 219px;
height: 219px;
}
.quest_nudibranch {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px -437px;
background-position: -1540px -648px;
width: 216px;
height: 216px;
}
.quest_octopus {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -653px -1332px;
background-position: -636px -1332px;
width: 222px;
height: 177px;
}
.quest_onyx {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1320px 0px;
background-position: -1320px -660px;
width: 219px;
height: 219px;
}
.quest_owl {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1320px -220px;
background-position: -1320px -880px;
width: 219px;
height: 219px;
}
.quest_peacock {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px -654px;
background-position: -1540px -865px;
width: 216px;
height: 216px;
}
.quest_penguin {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -1733px;
background-position: 0px -1730px;
width: 190px;
height: 183px;
}
.quest_pterodactyl {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1320px -440px;
background-position: 0px -1112px;
width: 219px;
height: 219px;
}
.quest_rat {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1320px -660px;
background-position: -220px -1112px;
width: 219px;
height: 219px;
}
.quest_robot {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1320px -880px;
background-position: -440px -1112px;
width: 219px;
height: 219px;
}
.quest_rock {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px -871px;
background-position: -1540px -1082px;
width: 216px;
height: 216px;
}
.quest_rooster {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1527px -1332px;
background-position: -428px -1543px;
width: 213px;
height: 174px;
}
.quest_ruby {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -1112px;
background-position: -660px -1112px;
width: 219px;
height: 219px;
}
.quest_sabretooth {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -1112px;
background-position: -880px -1112px;
width: 219px;
height: 219px;
}
.quest_seaserpent {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -1112px;
background-position: -1100px -1112px;
width: 219px;
height: 219px;
}
.quest_sheep {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px -1112px;
width: 219px;
height: 219px;
}
.quest_silver {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px -1112px;
width: 219px;
height: 219px;
}
.quest_slime {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1100px -1112px;
width: 219px;
height: 219px;
}
.quest_sloth {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1320px -1112px;
width: 219px;
height: 219px;
}
.quest_snail {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px -1088px;
width: 219px;
height: 213px;
}
.quest_snake {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1310px -1332px;
width: 216px;
height: 177px;
}
.quest_spider {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -462px -1546px;
width: 250px;
height: 150px;
}
.quest_squirrel {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px 0px;
width: 219px;
height: 219px;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 414 KiB

After

Width:  |  Height:  |  Size: 381 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

After

Width:  |  Height:  |  Size: 311 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 KiB

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 146 KiB

+32
View File
@@ -416,6 +416,15 @@
"weaponSpecialFall2021HealerText": "Summoning Wand",
"weaponSpecialFall2021HealerNotes": "Use this wand to summon healing flames and a ghostly creature to help you. Increases Intelligence by <%= int %>. Limited Edition 2021 Autumn Gear.",
"weaponSpecialWinter2022RogueText": "Shooting Star Firework",
"weaponSpecialWinter2022RogueNotes": "Silver and gold are beloved of Rogues, right? These are totally on theme. Increases Strength by <%= str %>. Limited Edition 2021-2022 Winter Gear.",
"weaponSpecialWinter2022WarriorText": "Candy Cane Sword",
"weaponSpecialWinter2022WarriorNotes": "How many licks does it take to sharpen this candy cane into the perfect sword? Increases Strength by <%= str %>. Limited Edition 2021-2022 Winter Gear.",
"weaponSpecialWinter2022MageText": "Pomegranate Staff",
"weaponSpecialWinter2022MageNotes": "The berries on this staff contain an ancient magic to be wielded in winter. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2021-2022 Winter Gear.",
"weaponSpecialWinter2022HealerText": "Crystalline Ice Wand",
"weaponSpecialWinter2022HealerNotes": "Touch this solid-water implement to a friend's neck and they'll jump out of their chair! But they'll feel better afterward. Hopefully.Increases Intelligence by <%= int %>. Limited Edition 2021-2022 Winter Gear.",
"weaponMystery201411Text": "Pitchfork of Feasting",
"weaponMystery201411Notes": "Stab your enemies or dig in to your favorite foods - this versatile pitchfork does it all! Confers no benefit. November 2014 Subscriber Item.",
"weaponMystery201502Text": "Shimmery Winged Staff of Love and Also Truth",
@@ -996,6 +1005,15 @@
"armorSpecialFall2021HealerText": "Summoner's Robes",
"armorSpecialFall2021HealerNotes": "Made of durable, flame-resistant fabric, these robes are perfect to wear when conjuring healing flames. Increases Constitution by <%= con %>. Limited Edition 2021 Autumn Gear.",
"armorSpecialWinter2022RogueText": "Dazzling Explosion",
"armorSpecialWinter2022RogueNotes": "If they're seeing stars, they're not seeing you! Yes, let's go with that. Increases Perception by <%= per %>. Limited Edition 2021-2022 Winter Gear.",
"armorSpecialWinter2022WarriorText": "Fuzzy Stocking",
"armorSpecialWinter2022WarriorNotes": "Who says you cant be snug and cozy while doing battle with everyday tasks? Increases Constitution by <%= con %>. Limited Edition 2021-2022 Winter Gear.",
"armorSpecialWinter2022MageText": "Pomegranate Protection",
"armorSpecialWinter2022MageNotes": "Enemies should watch out for fruit juice stains when you approach! Increases Intelligence by <%= int %>. Limited Edition 2021-2022 Winter Gear.",
"armorSpecialWinter2022HealerText": "Crystalline Ice Armor",
"armorSpecialWinter2022HealerNotes": "Glide as if skating, just above the ground, a glittering ethereal figure come to bring cool and calm. Increases Constitution by <%= con %>. Limited Edition 2021-2022 Winter Gear.",
"armorMystery201402Text": "Messenger Robes",
"armorMystery201402Notes": "Shimmering and strong, these robes have many pockets to carry letters. Confers no benefit. February 2014 Subscriber Item.",
"armorMystery201403Text": "Forest Walker Armor",
@@ -1665,6 +1683,15 @@
"headSpecialFall2021HealerText": "Summoner's Mask",
"headSpecialFall2021HealerNotes": "Your own magic turns your hair into shocking, bright flames when you don this mask. Increases Intelligence by <%= int %>. Limited Edition 2021 Autumn Gear.",
"headSpecialWinter2022RogueText": "Thundering Finale",
"headSpecialWinter2022RogueNotes": "What? Huh? There's a Rogue where? I'm sorry, I can't hear anything over these fireworks! Increases Perception by <%= per %>. Limited Edition 2021-2022 Winter Gear.",
"headSpecialWinter2022WarriorText": "Fuzzy Stocking Cap",
"headSpecialWinter2022WarriorNotes": "In festive green with soft red trim, this hat is guaranteed to keep you warm all winter. Increases Strength by <%= str %>. Limited Edition 2021-2022 Winter Gear.",
"headSpecialWinter2022MageText": "Pomegranate Helm",
"headSpecialWinter2022MageNotes": "Due to its thick husk, this festive, fruity helmet is berry strong. Increases Perception by <%= per %>. Limited Edition 2021-2022 Winter Gear.",
"headSpecialWinter2022HealerText": "Crystalline Ice Crown",
"headSpecialWinter2022HealerNotes": "Minute imperfections and impurities send the arms of this headdress branching out in unpredictable directions. It's symbolic! And also very, very pretty. Increases Intelligence by <%= int %>. Limited Edition 2021-2022 Winter Gear.",
"headSpecialGaymerxText": "Rainbow Warrior Helm",
"headSpecialGaymerxNotes": "In celebration of the GaymerX Conference, this special helmet is decorated with a radiant, colorful rainbow pattern! GaymerX is a game convention celebrating LGTBQ and gaming and is open to everyone.",
@@ -2185,6 +2212,11 @@
"shieldSpecialFall2021HealerText": "Summoned Creature",
"shieldSpecialFall2021HealerNotes": "An ethereal being rises from your magical flames to grant you extra protection. Increases Constitution by <%= con %>. Limited Edition 2021 Autumn Gear.",
"shieldSpecialWinter2022WarriorText": "Jingle Bell Shield",
"shieldSpecialWinter2022WarriorNotes": "This is a jingle bell, jingle bell, jingle bell shield. Jingle bell protect and jingle bell deflect. Increases Constitution by <%= con %>. Limited Edition 2021-2022 Winter Gear.",
"shieldSpecialWinter2022HealerText": "Enduring Ice Crystal",
"shieldSpecialWinter2022HealerNotes": "Though it melts in your hand, the power of elemental ice replenishes it from within. Increases Constitution by <%= con %>. Limited Edition 2021-2022 Winter Gear.",
"shieldMystery201601Text": "Resolution Slayer",
"shieldMystery201601Notes": "This blade can be used to parry away all distractions. Confers no benefit. January 2016 Subscriber Item.",
"shieldMystery201701Text": "Time-Freezer Shield",
+5 -1
View File
@@ -175,6 +175,10 @@
"fall2021HeadlessWarriorSet": "Headless (Warrior)",
"fall2021BrainEaterMageSet": "Brain Eater (Mage)",
"fall2021FlameSummonerHealerSet": "Flame Summoner (Healer)",
"winter2022FireworksRogueSet": "Fireworks (Rogue)",
"winter2022StockingWarriorSet": "Stocking (Warrior)",
"winter2022PomegranateMageSet": "Pomegranate (Mage)",
"winter2022IceCrystalHealerSet": "Ice Crystal (Healer)",
"eventAvailability": "Available for purchase until <%= date(locale) %>.",
"eventAvailabilityReturning": "Available for purchase until <%= availableDate(locale) %>. This potion was last available in <%= previousDate(locale) %>.",
"dateEndMarch": "April 30",
@@ -207,6 +211,6 @@
"howItWorks": "How it Works",
"g1g1HowItWorks": "Type in the username of the account youd like to gift to. From there, pick the sub length youd like to gift and check out. Your account will automatically be rewarded with the same level of subscription you just gifted.",
"limitations": "Limitations",
"g1g1Limitations": "This is a limited time event that starts on December 17th at 8:00 AM ET (13:00 UTC) and will end January 7th at 8:00 PM ET (1:00 UTC). This promotion only applies when you gift to another Habitican. If you or your gift recipient already have a subscription, the gifted subscription will add months of credit that will only be used after the current subscription is canceled or expires.",
"g1g1Limitations": "This is a limited time event that starts on December 16th at 8:00 AM ET (13:00 UTC) and will end January 6th at 8:00 PM ET (1:00 UTC). This promotion only applies when you gift to another Habitican. If you or your gift recipient already have a subscription, the gifted subscription will add months of credit that will only be used after the current subscription is canceled or expires.",
"noLongerAvailable": "This item is no longer available."
}
@@ -17,7 +17,7 @@ export default prefill({
setPrice: 5, availableFrom: '2021-09-28T08:00-04:00', availableUntil: '2021-10-31T20:00-04:00', text: t('hauntedColors'),
},
winteryHairColors: {
setPrice: 5, availableFrom: '2021-01-05', availableUntil: '2021-02-01', text: t('winteryColors'),
setPrice: 5, availableFrom: '2021-12-23T08:00-05:00', availableUntil: '2022-01-31T20:00-05:00', text: t('winteryColors'),
},
rainbowSkins: { setPrice: 5, text: t('rainbowSkins') },
animalSkins: { setPrice: 5, text: t('animalSkins') },
@@ -32,6 +32,6 @@ export default prefill({
setPrice: 5, availableFrom: '2021-07-13T08:00-04:00', availableUntil: '2021-07-31T20:00-04:00', text: t('splashySkins'),
},
winterySkins: {
setPrice: 5, availableFrom: '2021-01-05', availableUntil: '2021-02-01', text: t('winterySkins'),
setPrice: 5, availableFrom: '2021-12-23T08:00-05:00', availableUntil: '2022-01-31T20:00-05:00', text: t('winterySkins'),
},
});
+1 -4
View File
@@ -1,10 +1,7 @@
import moment from 'moment';
import find from 'lodash/find';
import t from './translation';
import { EVENTS } from './constants';
const CURRENT_EVENT = find(EVENTS, event => moment().isBetween(event.start, event.end));
/*
---------------------------------------------------------------
Discounted Item Bundles
@@ -87,7 +84,7 @@ const bundles = {
'penguin',
],
canBuy () {
return CURRENT_EVENT && CURRENT_EVENT.season === 'winter';
return moment().isBetween('2022-01-11T08:00-05:00', '2022-01-31T20:00-05:00');
},
type: 'quests',
value: 7,
@@ -10,17 +10,22 @@ const gemsPromo = {
export const EVENTS = {
noCurrentEvent: {
start: '2022-01-06T20:00-05:00',
start: '2022-01-31T20:00-05:00',
end: '2022-02-28T20:00-05:00',
season: 'normal',
npcImageSuffix: '',
},
winter2022: {
start: '2021-12-21T08:00-05:00',
end: '2022-01-31T20:00-05:00',
season: 'winter',
npcImageSuffix: '_winter',
gear: true,
},
winter2022Promo: {
start: '2021-12-16T08:00-05:00',
end: '2022-01-06T20:00-05:00',
promo: 'g1g1',
season: 'normal',
npcImageSuffix: '',
},
prePromoNoEvent: {
start: '2021-11-28T20:00-05:00',
@@ -18,35 +18,35 @@ const SEASONAL_SETS = {
'festiveFairySet',
'cocoaSet',
// winter 2017
'winter2017IceHockeySet',
'winter2017WinterWolfSet',
'winter2017SugarPlumSet',
'winter2017FrostyRogueSet',
// winter 2018
'winter2018ConfettiSet',
'winter2018GiftWrappedSet',
'winter2018MistletoeSet',
'winter2018ReindeerSet',
// winter 2019
'winter2019PoinsettiaSet',
'winter2019WinterStarSet',
'winter2019BlizzardSet',
'winter2019PyrotechnicSet',
// winter 2020
'winter2020CarolOfTheMageSet',
'winter2020LanternSet',
'winter2020EvergreenSet',
'winter2020WinterSpiceSet',
// winter 2021
'winter2021WinterMoonMageSet',
'winter2021HollyIvyRogueSet',
'winter2021IceFishingWarriorSet',
'winter2021ArcticExplorerHealerSet',
'winter2022FireworksRogueSet',
'winter2022StockingWarriorSet',
'winter2022PomegranateMageSet',
'winter2022IceCrystalHealerSet',
],
spring: [
// spring 2014
File diff suppressed because it is too large Load Diff
@@ -177,18 +177,27 @@ const premium = {
value: 2,
text: t('hatchingPotionHolly'),
limited: true,
canBuy () {
return moment().isBetween('2019-12-19', '2020-02-02');
},
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJanuary'),
previousDate: t('decemberYYYY', { year: 2016 }),
previousDate: t('januaryYYYY', { year: 2020 }),
}),
event: EVENTS.winter2022,
canBuy () {
return moment().isBetween(EVENTS.winter2022.start, EVENTS.winter2022.end);
},
},
Peppermint: {
value: 2,
text: t('hatchingPotionPeppermint'),
limited: true,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJanuary'),
previousDate: t('januaryYYYY', { year: 2018 }),
}),
event: EVENTS.winter2022,
canBuy () {
return moment().isBetween(EVENTS.winter2022.start, EVENTS.winter2022.end);
},
},
StarryNight: {
value: 2,
@@ -450,12 +459,13 @@ const premium = {
value: 2,
text: t('hatchingPotionStainedGlass'),
limited: true,
_addlNotes: t('premiumPotionAddlNotes', {
date: t('dateEndJanuary'),
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJanuary'),
previousDate: t('januaryYYYY', { year: 2021 }),
}),
event: EVENTS.winter2021,
event: EVENTS.winter2022,
canBuy () {
return moment().isBetween('2020-12-22T08:00-04:00', '2021-01-31T20:00-04:00');
return moment().isBetween(EVENTS.winter2022.start, EVENTS.winter2022.end);
},
},
PolkaDot: {
+7 -17
View File
@@ -9,7 +9,9 @@ import {
USER_CAN_OWN_QUEST_CATEGORIES,
} from './constants';
const CURRENT_EVENT = find(EVENTS, event => moment().isBetween(event.start, event.end));
const CURRENT_EVENT = find(
EVENTS, event => moment().isBetween(event.start, event.end) && Boolean(event.season),
);
const userCanOwnQuestCategories = USER_CAN_OWN_QUEST_CATEGORIES;
const quests = {
@@ -260,10 +262,7 @@ const quests = {
},
},
evilsanta: {
canBuy () {
return CURRENT_EVENT && CURRENT_EVENT.season === 'winter';
},
event: EVENTS.winter2021,
event: CURRENT_EVENT && CURRENT_EVENT.season === 'winter' ? CURRENT_EVENT : null,
text: t('questEvilSantaText'),
notes: t('questEvilSantaNotes'),
addlNotes: t('evilSantaAddlNotes'),
@@ -288,10 +287,7 @@ const quests = {
},
},
evilsanta2: {
canBuy () {
return CURRENT_EVENT && CURRENT_EVENT.season === 'winter';
},
event: EVENTS.winter2021,
event: CURRENT_EVENT && CURRENT_EVENT.season === 'winter' ? CURRENT_EVENT : null,
text: t('questEvilSanta2Text'),
notes: t('questEvilSanta2Notes'),
addlNotes: t('evilSantaAddlNotes'),
@@ -518,10 +514,7 @@ const quests = {
completion: t('questEggHuntCompletion'),
value: 1,
category: 'pet',
event: EVENTS.spring2021,
canBuy () {
return moment().isBefore(EVENTS.spring2021.end);
},
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
collect: {
plainEgg: {
text: t('questEggHuntCollectPlainEgg'),
@@ -3586,10 +3579,7 @@ const quests = {
completion: t('questWaffleCompletion'),
value: 4,
category: 'hatchingPotion',
event: EVENTS.spring2021,
canBuy () {
return moment().isBefore(EVENTS.spring2021.end);
},
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
boss: {
name: t('questWaffleBoss'),
hp: 500,
@@ -1,9 +1,29 @@
// 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('2022-01-31T20:00-05:00')) {
return [
{
type: 'armoire',
path: 'armoire',
},
{
type: 'premiumHatchingPotion',
path: 'premiumHatchingPotions.StainedGlass',
},
{
type: 'premiumHatchingPotion',
path: 'premiumHatchingPotions.Peppermint',
},
{
type: 'premiumHatchingPotion',
path: 'premiumHatchingPotions.Holly',
},
];
}
return [
{
type: 'armoire',
@@ -11,35 +31,67 @@ const featuredItems = {
},
{
type: 'food',
path: 'food.Chocolate',
path: 'food.Honey',
},
{
type: 'hatchingPotions',
path: 'hatchingPotions.Shade',
path: 'hatchingPotions.CottonCandyPink',
},
{
type: 'eggs',
path: 'eggs.BearCub',
path: 'eggs.Cactus',
},
];
},
quests () {
if (moment().isBefore('2022-01-11T08:00-05:00')) {
return [
{
type: 'quests',
path: 'quests.evilsanta',
},
{
type: 'quests',
path: 'quests.evilsanta2',
},
{
type: 'quests',
path: 'quests.penguin',
},
];
}
if (moment().isBefore('2022-01-31T20:00-05:00')) {
return [
{
type: 'bundles',
path: 'bundles.winterQuests',
},
{
type: 'quests',
path: 'quests.silver',
},
{
type: 'quests',
path: 'quests.sheep',
},
];
}
return [
{
type: 'quests',
path: 'quests.slime',
path: 'quests.ferret',
},
{
type: 'quests',
path: 'quests.onyx',
path: 'quests.bronze',
},
{
type: 'quests',
path: 'quests.butterfly',
path: 'quests.basilist',
},
];
},
seasonal: 'summer2020Healer',
seasonal: 'winter2021Warrior',
timeTravelers: [
// TODO
],
@@ -7,7 +7,7 @@ import {
} from '../content/constants';
const CURRENT_EVENT = find(
EVENTS, event => moment().isBetween(event.start, event.end),
EVENTS, event => moment().isBetween(event.start, event.end) && Boolean(event.season),
);
const SHOP_OPEN = CURRENT_EVENT && ['winter', 'spring', 'summer', 'fall'].includes(CURRENT_EVENT.season);
@@ -30,20 +30,20 @@ export default {
pinnedSets: SHOP_OPEN
? {
healer: 'fall2021FlameSummonerHealerSet',
rogue: 'fall2021OozeRogueSet',
warrior: 'fall2021HeadlessWarriorSet',
wizard: 'fall2021BrainEaterMageSet',
healer: 'winter2022IceCrystalHealerSet',
rogue: 'winter2022FireworksRogueSet',
warrior: 'winter2022StockingWarriorSet',
wizard: 'winter2022PomegranateMageSet',
}
: {},
availableSpells: SHOP_OPEN && moment().isBetween('2021-10-12T08:00-04:00', CURRENT_EVENT.end)
availableSpells: SHOP_OPEN && moment().isBetween('2021-12-30T08:00-04:00', CURRENT_EVENT.end)
? [
'spookySparkles',
'snowball',
]
: [],
availableQuests: [],
featuredSet: 'fall2020DeathsHeadMothHealerSet',
featuredSet: 'winter2021ArcticExplorerHealerSet',
};