feat(event): Wonderland 2019-20
|
|
@ -332,7 +332,7 @@ export default {
|
|||
loading: true,
|
||||
currentTipNumber: 0,
|
||||
bannerHidden: false,
|
||||
giftingHidden: getLocalSetting(CONSTANTS.keyConstants.GIFTING_BANNER_DISPLAY) === 'dismissed',
|
||||
giftingHidden: getLocalSetting(CONSTANTS.keyConstants.GIFTING_BANNER_DISPLAY) === 'dismissed2019',
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
|
@ -727,7 +727,7 @@ export default {
|
|||
this.bannerHidden = true;
|
||||
},
|
||||
hideGiftingBanner () {
|
||||
setLocalSetting(CONSTANTS.keyConstants.GIFTING_BANNER_DISPLAY, 'dismissed');
|
||||
setLocalSetting(CONSTANTS.keyConstants.GIFTING_BANNER_DISPLAY, 'dismissed2019');
|
||||
this.giftingHidden = true;
|
||||
},
|
||||
resumeDamage () {
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
// possible values are: normal, fall, habitoween, thanksgiving, winter, nye, birthday, valentines, spring, summer
|
||||
// more to be added on future seasons
|
||||
|
||||
$npc_market_flavor: 'normal';
|
||||
$npc_quests_flavor: 'normal';
|
||||
$npc_seasonal_flavor: 'normal';
|
||||
$npc_timetravelers_flavor: 'normal';
|
||||
$npc_tavern_flavor: 'normal';
|
||||
$npc_market_flavor: 'winter';
|
||||
$npc_quests_flavor: 'winter';
|
||||
$npc_seasonal_flavor: 'winter';
|
||||
$npc_timetravelers_flavor: 'winter';
|
||||
$npc_tavern_flavor: 'winter';
|
||||
|
|
|
|||
46
website/client/src/assets/svg/gifts-vertical.svg
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="52" height="62" viewBox="0 0 52 62">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path stroke="#FFA624" stroke-width="2" d="M18.286 6.252c.186-1.717-.286-3.6-1.658-4.473-1.373-.872-2.831-.21-2.994 1.027-.163 1.237.714 1.988 3.413 4.686.766.766 1.054.477 1.24-1.24z"/>
|
||||
<path stroke="#FFBE5D" stroke-width="2" d="M21.882 8.328c1.395-1.018 3.262-1.552 4.704-.8 1.441.753 1.597 2.347.607 3.107-.99.76-2.079.375-5.764-.613-1.047-.28-.941-.675.453-1.694z"/>
|
||||
<path fill="#EE9109" d="M20.698 6.227c-2.754-1.59-2.924 2.514-1.82 3.152 1.106.637 4.574-1.562 1.82-3.152z"/>
|
||||
<path fill="#F8F9F9" d="M19.167 8.88l10.18 5.878-2.939 5.09-10.18-5.878z"/>
|
||||
<path fill="#DDF3F3" d="M8.986 3.003l10.18 5.877-2.938 5.09-10.18-5.877z"/>
|
||||
<path fill="#FFBE5D" d="M15.773 6.921l6.787 3.918-2.939 5.09-6.787-3.918z"/>
|
||||
<path fill="#FFA624" d="M15.773 6.921l3.394 1.96-2.94 5.09-3.393-1.96z"/>
|
||||
<path fill="#FFA624" d="M19.167 8.88l3.393 1.96-.98 1.696-3.393-1.96z"/>
|
||||
<path fill="#EE9109" d="M15.773 6.921l3.394 1.96-.98 1.696-3.393-1.96z"/>
|
||||
<path fill="#F8F9F9" d="M16.228 13.97l8.483 4.898-6.857 11.877-8.483-4.898z"/>
|
||||
<path fill="#DDF3F3" d="M7.744 9.072l8.484 4.898L9.37 25.847.887 20.95z"/>
|
||||
<path fill="#FFA624" d="M14.531 12.99l1.697.98L9.37 25.847l-1.697-.98z"/>
|
||||
<path fill="#FFBE5D" d="M16.228 13.97l1.696.98-6.857 11.876-1.696-.98z"/>
|
||||
<path fill="#EE9109" d="M8.654 23.171l1.696.98-.98 1.696-1.696-.98zM14.531 12.99l1.697.98-.98 1.697-1.697-.98z"/>
|
||||
<path fill="#C1E9E9" d="M7.744 9.072l6.787 3.919-.98 1.696-6.786-3.918z"/>
|
||||
<path fill="#C1E9E9" d="M7.027 6.396l6.787 3.918-.98 1.697-6.786-3.918zM1.867 19.253l6.787 3.918-.98 1.697-6.787-3.919z"/>
|
||||
<path fill="#DDF3F3" d="M17.924 14.95l6.787 3.918-.98 1.697-6.786-3.918z"/>
|
||||
<path fill="#DDF3F3" d="M20.6 14.233l6.788 3.918-.98 1.697-6.787-3.918zM12.047 25.13l6.787 3.919-.98 1.696-6.787-3.918z"/>
|
||||
<path fill="#FFA624" d="M10.35 24.15l1.697.98-.98 1.697-1.696-.98zM16.228 13.97l1.696.98-.98 1.697-1.696-.98z"/>
|
||||
<path fill="#8EEDF6" d="M32.753 23.621l-.564 2.362 2.228-.966 2.361.564-.965-2.228.564-2.361-2.228.965-2.361-.564zM17.733 45.172l-.564 2.362 2.228-.966 2.361.564-.966-2.228.565-2.361-2.228.965-2.362-.564zM42.733 15.02l.769 2.958 1.905-2.39 2.96-.769-2.391-1.905-.769-2.96-1.906 2.391-2.958.769z"/>
|
||||
<g>
|
||||
<path fill="#F8F9F9" d="M37.688 45.676l9.462-2.536 3.55 13.247-9.463 2.536z"/>
|
||||
<path fill="#DDF3F3" d="M28.225 48.211l9.463-2.535 3.55 13.247-9.463 2.535z"/>
|
||||
<path fill="#FFA624" d="M35.795 46.183l1.893-.507 3.55 13.247-1.893.507z"/>
|
||||
<path fill="#FFBE5D" d="M37.688 45.676l1.892-.507 3.55 13.247-1.893.507z"/>
|
||||
<path fill="#EE9109" d="M38.838 57.537l1.892-.507.507 1.893-1.892.507zM35.795 46.183l1.893-.507.507 1.892-1.893.507z"/>
|
||||
<path fill="#C1E9E9" d="M28.225 48.211l7.57-2.028.507 1.892-7.57 2.028zM31.268 59.566l7.57-2.029.507 1.893-7.57 2.028z"/>
|
||||
<path fill="#DDF3F3" d="M39.58 45.169l7.57-2.029.507 1.893-7.57 2.028zM42.622 56.523l7.57-2.028.507 1.892-7.57 2.029z"/>
|
||||
<path fill="#FFA624" d="M40.73 57.03l1.892-.507.507 1.893-1.892.507zM37.688 45.676l1.892-.507.507 1.892-1.892.507z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path stroke="#FFA624" stroke-width="2" d="M37.861 35.357c-.471-1.661-1.614-3.232-3.214-3.526-1.599-.294-2.703.866-2.39 2.074.311 1.208 1.407 1.575 4.92 3.066.996.423 1.156.047.684-1.614z"/>
|
||||
<path stroke="#FFBE5D" stroke-width="2" d="M41.973 35.935c.911-1.467 2.443-2.662 4.061-2.504 1.619.158 2.36 1.578 1.727 2.653-.633 1.075-1.787 1.126-5.574 1.591-1.075.132-1.125-.273-.214-1.74z"/>
|
||||
<path fill="#EE9109" d="M40.088 34.43c-3.15-.442-1.77 3.426-.506 3.604 1.263.177 3.655-3.161.506-3.604z"/>
|
||||
<path fill="#F8F9F9" d="M39.662 37.464l11.64 1.636-.818 5.82-11.64-1.636z"/>
|
||||
<path fill="#DDF3F3" d="M28.02 35.828l11.642 1.636-.818 5.82-11.641-1.636z"/>
|
||||
<path fill="#FFBE5D" d="M35.781 36.919l7.76 1.09-.817 5.82-7.76-1.09z"/>
|
||||
<path fill="#FFA624" d="M35.781 36.919l3.88.545-.817 5.82-3.88-.545zM39.662 37.464l3.88.545-.273 1.94-3.88-.545z"/>
|
||||
<path fill="#EE9109" d="M35.781 36.919l3.88.545-.272 1.94-3.88-.545z"/>
|
||||
<path fill="#C1E9E9" d="M27.476 39.708l7.76 1.09-.273 1.941-7.76-1.09z"/>
|
||||
<path fill="#DDF3F3" d="M42.997 41.89l7.76 1.09-.273 1.94-7.76-1.09z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
|
|
@ -225,30 +225,30 @@ export default {
|
|||
classGear (heroClass) {
|
||||
if (heroClass === 'rogue') {
|
||||
return {
|
||||
armor: 'armor_rogue_5',
|
||||
head: 'head_rogue_5',
|
||||
shield: 'shield_rogue_6',
|
||||
weapon: 'weapon_rogue_6',
|
||||
armor: 'armor_special_winter2020Rogue',
|
||||
head: 'head_special_winter2020Rogue',
|
||||
shield: 'shield_special_winter2020Rogue',
|
||||
weapon: 'weapon_special_winter2020Rogue',
|
||||
};
|
||||
} if (heroClass === 'wizard') {
|
||||
return {
|
||||
armor: 'armor_wizard_5',
|
||||
head: 'head_wizard_5',
|
||||
weapon: 'weapon_wizard_6',
|
||||
armor: 'armor_special_winter2020Mage',
|
||||
head: 'head_special_winter2020Mage',
|
||||
weapon: 'weapon_special_winter2020Mage',
|
||||
};
|
||||
} if (heroClass === 'healer') {
|
||||
return {
|
||||
armor: 'armor_healer_5',
|
||||
head: 'head_healer_5',
|
||||
shield: 'shield_healer_5',
|
||||
weapon: 'weapon_healer_6',
|
||||
armor: 'armor_special_winter2020Healer',
|
||||
head: 'head_special_winter2020Healer',
|
||||
shield: 'shield_special_winter2020Healer',
|
||||
weapon: 'weapon_special_winter2020Healer',
|
||||
};
|
||||
}
|
||||
return {
|
||||
armor: 'armor_warrior_5',
|
||||
head: 'head_warrior_5',
|
||||
shield: 'shield_warrior_5',
|
||||
weapon: 'weapon_warrior_6',
|
||||
armor: 'armor_special_winter2020Warrior',
|
||||
head: 'head_special_winter2020Warrior',
|
||||
shield: 'shield_special_winter2020Warrior',
|
||||
weapon: 'weapon_special_winter2020Warrior',
|
||||
};
|
||||
},
|
||||
selectionBox (selectedClass, heroClass) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,19 @@
|
|||
<template>
|
||||
<div class="standard-page">
|
||||
<div class="standard-page pt-0 px-0">
|
||||
<div class="banner-g1g1 mx-n3 d-flex justify-content-center">
|
||||
<div
|
||||
class="svg-icon svg-gifts my-auto mr-5 ml-auto"
|
||||
v-html="icons.giftsVertical">
|
||||
</div>
|
||||
<div class="my-auto text-center">
|
||||
<strong> {{ $t('g1g1Announcement') }} </strong>
|
||||
<div class="mt-1"> {{ $t('g1g1Details') }} </div>
|
||||
</div>
|
||||
<div
|
||||
class="svg-icon svg-gifts gifts-right my-auto ml-5 mr-auto"
|
||||
v-html="icons.giftsVertical">
|
||||
</div>
|
||||
</div>
|
||||
<h1>{{ $t('subscription') }}</h1>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
|
|
@ -247,13 +261,31 @@
|
|||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
.badge.badge-success {
|
||||
color: #fff;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
.banner-g1g1 {
|
||||
height: 5.75rem;
|
||||
background-color: $teal-50;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
.gifts-right {
|
||||
filter: flipH;
|
||||
transform: scaleX(-1);
|
||||
}
|
||||
|
||||
.subscribe-pay {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.svg-gifts {
|
||||
width: 55px;
|
||||
height: 65px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
|
|
@ -270,6 +302,7 @@ import notificationsMixin from '../../mixins/notifications';
|
|||
|
||||
import amazonButton from '@/components/payments/amazonButton';
|
||||
import creditCardIcon from '@/assets/svg/credit-card-icon.svg';
|
||||
import giftsVertical from '@/assets/svg/gifts-vertical.svg';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
|
@ -298,6 +331,7 @@ export default {
|
|||
},
|
||||
icons: Object.freeze({
|
||||
creditCardIcon,
|
||||
giftsVertical,
|
||||
}),
|
||||
};
|
||||
},
|
||||
|
|
|
|||
|
|
@ -296,6 +296,7 @@
|
|||
"hatchingPotionSilver": "Silver",
|
||||
"hatchingPotionShadow": "Shadow",
|
||||
"hatchingPotionAmber": "Amber",
|
||||
"hatchingPotionAurora": "Aurora",
|
||||
|
||||
"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) %>.",
|
||||
|
|
|
|||
|
|
@ -310,7 +310,7 @@
|
|||
"weaponSpecialWinter2019WarriorText": "Snowflake Halberd",
|
||||
"weaponSpecialWinter2019WarriorNotes": "This snowflake was grown, ice crystal by ice crystal, into a diamond-hard blade! Increases Strength by <%= str %>. Limited Edition 2018-2019 Winter Gear.",
|
||||
"weaponSpecialWinter2019MageText": "Fiery Dragon Staff",
|
||||
"weaponSpecialWinter2019MageNotes": "Watch out! This explosive staff is ready to help you take on all comers. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2018-2019 Winter Gear",
|
||||
"weaponSpecialWinter2019MageNotes": "Watch out! This explosive staff is ready to help you take on all comers. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2018-2019 Winter Gear.",
|
||||
"weaponSpecialWinter2019HealerText": "Wand of Winter",
|
||||
"weaponSpecialWinter2019HealerNotes": "Winter can be a time of rest and healing, and so this wand of winter magic can help to soothe the most grievous hurts. Increases Intelligence by <%= int %>. Limited Edition 2018-2019 Winter Gear.",
|
||||
|
||||
|
|
@ -341,6 +341,15 @@
|
|||
"weaponSpecialFall2019HealerText": "Fearsome Phylactery",
|
||||
"weaponSpecialFall2019HealerNotes": "This phylactery can call on the spirits of tasks long slain and use their healing power. Increases Intelligence by <%= int %>. Limited Edition 2019 Autumn Gear.",
|
||||
|
||||
"weaponSpecialWinter2020RogueText": "Lantern Rod",
|
||||
"weaponSpecialWinter2020RogueNotes": "Darkness is a Rogue's element. Who better, then, to light the way in the darkest time of year? Increases Strength by <%= str %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"weaponSpecialWinter2020WarriorText": "Pointy Conifer Cone",
|
||||
"weaponSpecialWinter2020WarriorNotes": "Back, squirrels! You will take no piece of this! ...But if you all want to hang out and have cocoa, that's cool. Increases Strength by <%= str %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"weaponSpecialWinter2020MageText": "Rippling Sound Waves",
|
||||
"weaponSpecialWinter2020MageNotes": "With practice, you can project this aural magic at any desired frequency: a meditative hum, a festive chime, or a RED TASK OVERDUE ALARM. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"weaponSpecialWinter2020HealerText": "Clove Scepter",
|
||||
"weaponSpecialWinter2020HealerNotes": "Wave it about, and its aroma will summon your friends and helpers to begin cooking and baking! Increases Intelligence by <%= int %>. Limited Edition 2019-2020 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",
|
||||
|
|
@ -754,6 +763,15 @@
|
|||
"armorSpecialWinter2019HealerText": "Midnight Robe",
|
||||
"armorSpecialWinter2019HealerNotes": "Without darkness, there wouldn't be any light. These dark robes help bring peace and rest to promote healing. Increases Constitution by <%= con %>. Limited Edition 2018-2019 Winter Gear.",
|
||||
|
||||
"armorSpecialSpring2019RogueText": "Cloud Armor",
|
||||
"armorSpecialSpring2019RogueNotes": "Some very tuff fluff. Increases Perception by <%= per %>. Limited Edition 2019 Spring Gear.",
|
||||
"armorSpecialSpring2019WarriorText": "Orchid Armor",
|
||||
"armorSpecialSpring2019WarriorNotes": "Steely armor of reinforced petals protects your heart and also looks pretty snazzy. Increases Constitution by <%= con %>. Limited Edition 2019 Spring Gear.",
|
||||
"armorSpecialSpring2019MageText": "Amber Robes",
|
||||
"armorSpecialSpring2019MageNotes": "These robes gather power from magic resin embedded in the fibers of ancient bark that compose the cloth. Increases Intelligence by <%= int %>. Limited Edition 2019 Spring Gear.",
|
||||
"armorSpecialSpring2019HealerText": "Robin Costume",
|
||||
"armorSpecialSpring2019HealerNotes": "Your bright feathers will let everyone know that the cold and dark of winter has passed. Increases Constitution by <%= con %>. Limited Edition 2019 Spring Gear.",
|
||||
|
||||
"armorSpecialSummer2019RogueText": "Hammerhead Tail",
|
||||
"armorSpecialSummer2019RogueNotes": "This sinuous tail is perfect for making tight turns during daring aquatic escapes. Increases Perception by <%= per %>. Limited Edition 2019 Summer Gear.",
|
||||
"armorSpecialSummer2019WarriorText": "Carapace Armor",
|
||||
|
|
@ -772,14 +790,14 @@
|
|||
"armorSpecialFall2019HealerText": "Robes of Darkness",
|
||||
"armorSpecialFall2019HealerNotes": "It's said these robes are made of pure night. Use the dark power wisely! Increases Constitution by <%= con %>. Limited Edition 2019 Autumn Gear.",
|
||||
|
||||
"armorSpecialSpring2019RogueText": "Cloud Armor",
|
||||
"armorSpecialSpring2019RogueNotes": "Some very tuff fluff. Increases Perception by <%= per %>. Limited Edition 2019 Spring Gear.",
|
||||
"armorSpecialSpring2019WarriorText": "Orchid Armor",
|
||||
"armorSpecialSpring2019WarriorNotes": "Steely armor of reinforced petals protects your heart and also looks pretty snazzy. Increases Constitution by <%= con %>. Limited Edition 2019 Spring Gear.",
|
||||
"armorSpecialSpring2019MageText": "Amber Robes",
|
||||
"armorSpecialSpring2019MageNotes": "These robes gather power from magic resin embedded in the fibers of ancient bark that compose the cloth. Increases Intelligence by <%= int %>. Limited Edition 2019 Spring Gear.",
|
||||
"armorSpecialSpring2019HealerText": "Robin Costume",
|
||||
"armorSpecialSpring2019HealerNotes": "Your bright feathers will let everyone know that the cold and dark of winter has passed. Increases Constitution by <%= con %>. Limited Edition 2019 Spring Gear.",
|
||||
"armorSpecialWinter2020RogueText": "Poofy Parka",
|
||||
"armorSpecialWinter2020RogueNotes": "While no doubt you can brave storms with the inner warmth of your drive and devotion, it doesn't hurt to dress for the weather. Increases Perception by <%= per %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"armorSpecialWinter2020WarriorText": "Bark Armor",
|
||||
"armorSpecialWinter2020WarriorNotes": "O mighty pine, o towering fir, lend your strength. Or rather, your Constitution! Increases Constitution by <%= con %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"armorSpecialWinter2020MageText": "Curvy Coat",
|
||||
"armorSpecialWinter2020MageNotes": "Ring in the new year warm, comfy, and buffered against excessive vibration. Increases Intelligence by <%= int %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"armorSpecialWinter2020HealerText": "Orange Peel Gown",
|
||||
"armorSpecialWinter2020HealerNotes": "An opulent gown for those with festive zest! Increases Constitution by <%= con %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
|
||||
"armorMystery201402Text": "Messenger Robes",
|
||||
"armorMystery201402Notes": "Shimmering and strong, these robes have many pockets to carry letters. Confers no benefit. February 2014 Subscriber Item.",
|
||||
|
|
@ -1316,6 +1334,15 @@
|
|||
"headSpecialFall2019HealerText": "Dark Miter",
|
||||
"headSpecialFall2019HealerNotes": "Don this dark miter to harness the powers of the fearsome Lich. Increases Intelligence by <%= int %>. Limited Edition 2019 Autumn Gear.",
|
||||
|
||||
"headSpecialWinter2020RogueText": "Floofy Stocking Cap",
|
||||
"headSpecialWinter2020RogueNotes": "A Rogue walks down the street in that hat, people know they're not afraid of anything. Increases Perception by <%= per %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"headSpecialWinter2020WarriorText": "Snow-Dusted Headdress",
|
||||
"headSpecialWinter2020WarriorNotes": "A prickly feeling on your scalp is a small price to pay for seasonal magnificence. Increases Strength by <%= str %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"headSpecialWinter2020MageText": "Bell Crown",
|
||||
"headSpecialWinter2020MageNotes": "Oh! How the bells / Sweet golden bells / All seem to say, / “Cast ‘Burst of Flames’” Increases Perception by <%= per %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"headSpecialWinter2020HealerText": "Star Anise Emblem",
|
||||
"headSpecialWinter2020HealerNotes": "Please remove it from your head before attempting to brew chai or coffee with it. Increases Intelligence by <%= int %>. Limited Edition 2019-2020 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.",
|
||||
|
||||
|
|
@ -1754,6 +1781,11 @@
|
|||
"shieldSpecialFall2019HealerText": "Grotesque Grimoire",
|
||||
"shieldSpecialFall2019HealerNotes": "Harness the dark side of the Healer's arts with this Grimoire! Increases Constitution by <%= con %>. Limited Edition 2019 Autumn Gear.",
|
||||
|
||||
"shieldSpecialWinter2020WarriorText": "Round Conifer Cone",
|
||||
"shieldSpecialWinter2020WarriorNotes": "Use it as a shield until the seeds drop, and then you can put it on a wreath! Increases Constitution by <%= con %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"shieldSpecialWinter2020HealerText": "Giant Cinnamon Stick",
|
||||
"shieldSpecialWinter2020HealerNotes": "Do you feel you are too good for this world, too pure? Only this beauty of a spice will do. Increases Constitution by <%= con %>. Limited Edition 2019-2020 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",
|
||||
|
|
|
|||
|
|
@ -146,6 +146,10 @@
|
|||
"fall2019CyclopsSet": "Cyclops (Mage)",
|
||||
"fall2019LichSet": "Lich (Healer)",
|
||||
"fall2019RavenSet": "Raven (Warrior)",
|
||||
"winter2020EvergreenSet": "Evergreen (Warrior)",
|
||||
"winter2020CarolOfTheMageSet": "Carol of the Mage (Mage)",
|
||||
"winter2020WinterSpiceSet": "Winter Spice (Healer)",
|
||||
"winter2020LanternSet": "Lantern (Rogue)",
|
||||
"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",
|
||||
|
|
@ -153,6 +157,7 @@
|
|||
"dateEndMay": "May 31",
|
||||
"dateEndJune": "June 14",
|
||||
"augustYYYY": "August <%= year %>",
|
||||
"decemberYYYY": "December <%= year %>",
|
||||
"dateEndJuly": "July 31",
|
||||
"dateEndAugust": "August 31",
|
||||
"dateEndSeptember": "September 21",
|
||||
|
|
|
|||
|
|
@ -559,7 +559,7 @@
|
|||
"questYarnDropYarnEgg": "Yarn (Egg)",
|
||||
"questYarnUnlockText": "Unlocks purchasable Yarn eggs in the Market",
|
||||
"winterQuestsText": "Winter Quest Bundle",
|
||||
"winterQuestsNotes": "Contains 'Trapper Santa', 'Find the Cub', and 'The Fowl Frost'. Available until December 31.",
|
||||
"winterQuestsNotes": "Contains 'Trapper Santa', 'Find the Cub', and 'The Fowl Frost'. Available until January 31.",
|
||||
"questPterodactylText": "The Pterror-dactyl",
|
||||
"questPterodactylNotes": "You're taking a stroll along the peaceful Stoïkalm Cliffs when an evil screech rends the air. You turn to find a hideous creature flying towards you and are overcome by a powerful terror. As you turn to flee, @Lilith of Alfheim grabs you. \"Don't panic! It's just a Pterror-dactyl.\"<br><br>@Procyon P nods. \"They nest nearby, but they're attracted to the scent of negative Habits and undone Dailies.\"<br><br>\"Don't worry,\" @Katy133 says. \"We just need to be extra productive to defeat it!\" You are filled with a renewed sense of purpose and turn to face your foe.",
|
||||
"questPterodactylCompletion": "With one last screech the Pterror-dactyl plummets over the side of the cliff. You run forward to watch it soar away over the distant steppes. \"Phew, I'm glad that's over,\" you say. \"Me too,\" replies @GeraldThePixel. \"But look! It's left some eggs behind for us.\" @Edge passes you three eggs, and you vow to raise them in tranquility, surrounded by positive Habits and blue Dailies.",
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ const bundles = {
|
|||
'penguin',
|
||||
],
|
||||
canBuy () {
|
||||
return moment().isBetween('2017-12-14', '2018-01-01');
|
||||
return moment().isBetween('2019-12-19', '2020-02-02');
|
||||
},
|
||||
type: 'quests',
|
||||
value: 7,
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ export const EVENTS = {
|
|||
spring2019: { start: '2019-03-19', end: '2019-05-02' },
|
||||
summer2019: { start: '2019-06-18', end: '2019-08-02' },
|
||||
fall2019: { start: '2019-09-24', end: '2019-11-02' },
|
||||
winter2020: { start: '2019-12-19', end: '2020-02-02' },
|
||||
};
|
||||
|
||||
export const SEASONAL_SETS = {
|
||||
|
|
@ -77,6 +78,12 @@ export const SEASONAL_SETS = {
|
|||
'winter2019WinterStarSet',
|
||||
'winter2019BlizzardSet',
|
||||
'winter2019PyrotechnicSet',
|
||||
|
||||
// winter 2020
|
||||
'winter2020CarolOfTheMageSet',
|
||||
'winter2020LanternSet',
|
||||
'winter2020EvergreenSet',
|
||||
'winter2020WinterSpiceSet',
|
||||
],
|
||||
spring: [
|
||||
// spring 2014
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import * as takeThisGear from './special-takeThis';
|
|||
import * as wonderconGear from './special-wondercon';
|
||||
import t from '../../../translation';
|
||||
|
||||
const CURRENT_SEASON = '_NONE_';
|
||||
const CURRENT_SEASON = 'winter';
|
||||
|
||||
const armor = {
|
||||
0: backerGear.armorSpecial0,
|
||||
|
|
@ -956,6 +956,7 @@ const armor = {
|
|||
notes: t('armorSpecialWinter2019RogueNotes', { per: 15 }),
|
||||
value: 90,
|
||||
per: 15,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
winter2019Warrior: {
|
||||
event: EVENTS.winter2019,
|
||||
|
|
@ -965,6 +966,7 @@ const armor = {
|
|||
notes: t('armorSpecialWinter2019WarriorNotes', { con: 9 }),
|
||||
value: 90,
|
||||
con: 9,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
winter2019Mage: {
|
||||
event: EVENTS.winter2019,
|
||||
|
|
@ -974,6 +976,7 @@ const armor = {
|
|||
notes: t('armorSpecialWinter2019MageNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
winter2019Healer: {
|
||||
event: EVENTS.winter2019,
|
||||
|
|
@ -983,6 +986,7 @@ const armor = {
|
|||
notes: t('armorSpecialWinter2019HealerNotes', { con: 15 }),
|
||||
value: 90,
|
||||
con: 15,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
birthday2019: {
|
||||
text: t('armorSpecialBirthday2019Text'),
|
||||
|
|
@ -1105,6 +1109,42 @@ const armor = {
|
|||
con: 20,
|
||||
canOwn: ownsItem('armor_special_ks2019'),
|
||||
},
|
||||
winter2020Rogue: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'rogue',
|
||||
set: 'winter2020LanternSet',
|
||||
text: t('armorSpecialWinter2020RogueText'),
|
||||
notes: t('armorSpecialWinter2020RogueNotes', { per: 15 }),
|
||||
value: 90,
|
||||
per: 15,
|
||||
},
|
||||
winter2020Warrior: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'warrior',
|
||||
set: 'winter2020EvergreenSet',
|
||||
text: t('armorSpecialWinter2020WarriorText'),
|
||||
notes: t('armorSpecialWinter2020WarriorNotes', { con: 9 }),
|
||||
value: 90,
|
||||
con: 9,
|
||||
},
|
||||
winter2020Mage: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'wizard',
|
||||
set: 'winter2020CarolOfTheMageSet',
|
||||
text: t('armorSpecialWinter2020MageText'),
|
||||
notes: t('armorSpecialWinter2020MageNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
},
|
||||
winter2020Healer: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'healer',
|
||||
set: 'winter2020WinterSpiceSet',
|
||||
text: t('armorSpecialWinter2020HealerText'),
|
||||
notes: t('armorSpecialWinter2020HealerNotes', { con: 15 }),
|
||||
value: 90,
|
||||
con: 15,
|
||||
},
|
||||
};
|
||||
|
||||
const back = {
|
||||
|
|
@ -2379,6 +2419,7 @@ const head = {
|
|||
notes: t('headSpecialWinter2019RogueNotes', { per: 9 }),
|
||||
value: 60,
|
||||
per: 9,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
winter2019Warrior: {
|
||||
event: EVENTS.winter2019,
|
||||
|
|
@ -2388,6 +2429,7 @@ const head = {
|
|||
notes: t('headSpecialWinter2019WarriorNotes', { str: 9 }),
|
||||
value: 60,
|
||||
str: 9,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
winter2019Mage: {
|
||||
event: EVENTS.winter2019,
|
||||
|
|
@ -2397,6 +2439,7 @@ const head = {
|
|||
notes: t('headSpecialWinter2019MageNotes', { per: 7 }),
|
||||
value: 60,
|
||||
per: 7,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
winter2019Healer: {
|
||||
event: EVENTS.winter2019,
|
||||
|
|
@ -2406,6 +2449,7 @@ const head = {
|
|||
notes: t('headSpecialWinter2019HealerNotes', { int: 7 }),
|
||||
value: 60,
|
||||
int: 7,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
nye2018: {
|
||||
text: t('headSpecialNye2018Text'),
|
||||
|
|
@ -2534,6 +2578,42 @@ const head = {
|
|||
int: 20,
|
||||
canOwn: ownsItem('head_special_ks2019'),
|
||||
},
|
||||
winter2020Rogue: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'rogue',
|
||||
set: 'winter2020LanternSet',
|
||||
text: t('headSpecialWinter2020RogueText'),
|
||||
notes: t('headSpecialWinter2020RogueNotes', { per: 9 }),
|
||||
value: 60,
|
||||
per: 9,
|
||||
},
|
||||
winter2020Warrior: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'warrior',
|
||||
set: 'winter2020EvergreenSet',
|
||||
text: t('headSpecialWinter2020WarriorText'),
|
||||
notes: t('headSpecialWinter2020WarriorNotes', { str: 9 }),
|
||||
value: 60,
|
||||
str: 9,
|
||||
},
|
||||
winter2020Mage: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'wizard',
|
||||
set: 'winter2020CarolOfTheMageSet',
|
||||
text: t('headSpecialWinter2020MageText'),
|
||||
notes: t('headSpecialWinter2020MageNotes', { per: 7 }),
|
||||
value: 60,
|
||||
per: 7,
|
||||
},
|
||||
winter2020Healer: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'healer',
|
||||
set: 'winter2020WinterSpiceSet',
|
||||
text: t('headSpecialWinter2020HealerText'),
|
||||
notes: t('headSpecialWinter2020HealerNotes', { int: 7 }),
|
||||
value: 60,
|
||||
int: 7,
|
||||
},
|
||||
};
|
||||
|
||||
const headAccessory = {
|
||||
|
|
@ -3465,6 +3545,7 @@ const shield = {
|
|||
notes: t('weaponSpecialWinter2019RogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
winter2019Warrior: {
|
||||
event: EVENTS.winter2019,
|
||||
|
|
@ -3474,6 +3555,7 @@ const shield = {
|
|||
notes: t('shieldSpecialWinter2019WarriorNotes', { con: 7 }),
|
||||
value: 70,
|
||||
con: 7,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
winter2019Healer: {
|
||||
event: EVENTS.winter2019,
|
||||
|
|
@ -3483,6 +3565,7 @@ const shield = {
|
|||
notes: t('shieldSpecialWinter2019HealerNotes', { con: 9 }),
|
||||
value: 70,
|
||||
con: 9,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
piDay: {
|
||||
text: t('shieldSpecialPiDayText'),
|
||||
|
|
@ -3587,6 +3670,33 @@ const shield = {
|
|||
per: 20,
|
||||
canOwn: ownsItem('shield_special_ks2019'),
|
||||
},
|
||||
winter2020Rogue: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'rogue',
|
||||
set: 'winter2020LanternSet',
|
||||
text: t('weaponSpecialWinter2020RogueText'),
|
||||
notes: t('weaponSpecialWinter2020RogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
},
|
||||
winter2020Warrior: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'warrior',
|
||||
set: 'winter2020EvergreenSet',
|
||||
text: t('shieldSpecialWinter2020WarriorText'),
|
||||
notes: t('shieldSpecialWinter2020WarriorNotes', { con: 7 }),
|
||||
value: 70,
|
||||
con: 7,
|
||||
},
|
||||
winter2020Healer: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'healer',
|
||||
set: 'winter2020WinterSpiceSet',
|
||||
text: t('shieldSpecialWinter2020HealerText'),
|
||||
notes: t('shieldSpecialWinter2020HealerNotes', { con: 9 }),
|
||||
value: 70,
|
||||
con: 9,
|
||||
},
|
||||
};
|
||||
|
||||
const weapon = {
|
||||
|
|
@ -4538,6 +4648,7 @@ const weapon = {
|
|||
notes: t('weaponSpecialWinter2019RogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
winter2019Warrior: {
|
||||
event: EVENTS.winter2019,
|
||||
|
|
@ -4547,6 +4658,7 @@ const weapon = {
|
|||
notes: t('weaponSpecialWinter2019WarriorNotes', { str: 15 }),
|
||||
value: 90,
|
||||
str: 15,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
winter2019Mage: {
|
||||
event: EVENTS.winter2019,
|
||||
|
|
@ -4558,6 +4670,7 @@ const weapon = {
|
|||
value: 170,
|
||||
int: 15,
|
||||
per: 7,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
winter2019Healer: {
|
||||
event: EVENTS.winter2019,
|
||||
|
|
@ -4567,6 +4680,7 @@ const weapon = {
|
|||
notes: t('weaponSpecialWinter2019HealerNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
canBuy: () => CURRENT_SEASON === 'winter',
|
||||
},
|
||||
spring2019Rogue: {
|
||||
event: EVENTS.spring2019,
|
||||
|
|
@ -4687,6 +4801,44 @@ const weapon = {
|
|||
str: 20,
|
||||
canOwn: ownsItem('weapon_special_ks2019'),
|
||||
},
|
||||
winter2020Rogue: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'rogue',
|
||||
set: 'winter2020LanternSet',
|
||||
text: t('weaponSpecialWinter2020RogueText'),
|
||||
notes: t('weaponSpecialWinter2020RogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
},
|
||||
winter2020Warrior: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'warrior',
|
||||
set: 'winter2020EvergreenSet',
|
||||
text: t('weaponSpecialWinter2020WarriorText'),
|
||||
notes: t('weaponSpecialWinter2020WarriorNotes', { str: 15 }),
|
||||
value: 90,
|
||||
str: 15,
|
||||
},
|
||||
winter2020Mage: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'wizard',
|
||||
set: 'winter2020CarolOfTheMageSet',
|
||||
twoHanded: true,
|
||||
text: t('weaponSpecialWinter2020MageText'),
|
||||
notes: t('weaponSpecialWinter2020MageNotes', { int: 15, per: 7 }),
|
||||
value: 170,
|
||||
int: 15,
|
||||
per: 7,
|
||||
},
|
||||
winter2020Healer: {
|
||||
event: EVENTS.winter2020,
|
||||
specialClass: 'healer',
|
||||
set: 'winter2020WinterSpiceSet',
|
||||
text: t('weaponSpecialWinter2020HealerText'),
|
||||
notes: t('weaponSpecialWinter2020HealerNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
},
|
||||
};
|
||||
|
||||
export {
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@ import each from 'lodash/each';
|
|||
import moment from 'moment';
|
||||
import t from './translation';
|
||||
|
||||
const CURRENT_SEASON = '_NONE_';
|
||||
|
||||
function hasQuestAchievementFunction (key) {
|
||||
return user => user.achievements.quests
|
||||
&& user.achievements.quests[key] > 0;
|
||||
|
|
@ -64,31 +62,26 @@ const premium = {
|
|||
value: 2,
|
||||
text: t('hatchingPotionCupid'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
Shimmer: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionShimmer'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
Fairy: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionFairy'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
Floral: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionFloral'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
Aquatic: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionAquatic'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
Ember: {
|
||||
value: 2,
|
||||
|
|
@ -118,7 +111,6 @@ const premium = {
|
|||
value: 2,
|
||||
text: t('hatchingPotionSpooky'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
_addlNotes: t('eventAvailabilityReturning', {
|
||||
availableDate: t('dateEndOctober'),
|
||||
previousDate: t('september2017'),
|
||||
|
|
@ -128,37 +120,45 @@ const premium = {
|
|||
value: 2,
|
||||
text: t('hatchingPotionGhost'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
Holly: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionHolly'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
canBuy () {
|
||||
return moment().isBetween('2019-12-19', '2020-02-02');
|
||||
},
|
||||
_addlNotes: t('eventAvailabilityReturning', {
|
||||
availableDate: t('dateEndJanuary'),
|
||||
previousDate: t('decemberYYYY', { year: 2016 }),
|
||||
}),
|
||||
},
|
||||
Peppermint: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionPeppermint'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
StarryNight: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionStarryNight'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
canBuy () {
|
||||
return moment().isBetween('2019-12-19', '2020-02-02');
|
||||
},
|
||||
_addlNotes: t('eventAvailabilityReturning', {
|
||||
availableDate: t('dateEndJanuary'),
|
||||
previousDate: t('decemberYYYY', { year: 2017 }),
|
||||
}),
|
||||
},
|
||||
Rainbow: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionRainbow'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
Glass: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionGlass'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
_addlNotes: t('eventAvailabilityReturning', {
|
||||
availableDate: t('dateEndJuly'),
|
||||
previousDate: t('june2018'),
|
||||
|
|
@ -168,7 +168,6 @@ const premium = {
|
|||
value: 2,
|
||||
text: t('hatchingPotionGlow'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
_addlNotes: t('eventAvailabilityReturning', {
|
||||
availableDate: t('dateEndOctober'),
|
||||
previousDate: t('september2018'),
|
||||
|
|
@ -178,31 +177,26 @@ const premium = {
|
|||
value: 2,
|
||||
text: t('hatchingPotionFrost'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
IcySnow: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionIcySnow'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
RoseQuartz: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionRoseQuartz'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
Celestial: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionCelestial'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
Sunshine: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionSunshine'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
Bronze: {
|
||||
value: 2,
|
||||
|
|
@ -215,7 +209,6 @@ const premium = {
|
|||
value: 2,
|
||||
text: t('hatchingPotionWatery'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
Silver: {
|
||||
value: 2,
|
||||
|
|
@ -228,7 +221,6 @@ const premium = {
|
|||
value: 2,
|
||||
text: t('hatchingPotionShadow'),
|
||||
limited: true,
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
Amber: {
|
||||
value: 2,
|
||||
|
|
@ -237,6 +229,17 @@ const premium = {
|
|||
canBuy: hasQuestAchievementFunction('amber'),
|
||||
_addlNotes: t('premiumPotionUnlimitedNotes'),
|
||||
},
|
||||
Aurora: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionAurora'),
|
||||
limited: true,
|
||||
canBuy () {
|
||||
return moment().isBetween('2019-12-19', '2020-02-02');
|
||||
},
|
||||
_addlNotes: t('premiumPotionAddlNotes', {
|
||||
date: t('dateEndJanuary'),
|
||||
}),
|
||||
},
|
||||
};
|
||||
|
||||
const wacky = {
|
||||
|
|
@ -269,13 +272,10 @@ each(premium, (pot, key) => {
|
|||
notes: t('hatchingPotionNotes', {
|
||||
potText: pot.text,
|
||||
}),
|
||||
_addlNotes: t('premiumPotionAddlNotes', {
|
||||
date: t(`dateEnd${pot._season}`),
|
||||
}),
|
||||
premium: true,
|
||||
limited: false,
|
||||
canBuy () {
|
||||
return pot._season === CURRENT_SEASON;
|
||||
return false;
|
||||
},
|
||||
});
|
||||
});
|
||||
|
|
@ -294,7 +294,7 @@ each(wacky, (pot, key) => {
|
|||
limited: true,
|
||||
wacky: true,
|
||||
canBuy () {
|
||||
return pot._season === CURRENT_SEASON;
|
||||
return false;
|
||||
},
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import each from 'lodash/each';
|
||||
import defaults from 'lodash/defaults';
|
||||
import moment from 'moment';
|
||||
import sortBy from 'lodash/sortBy';
|
||||
import t from './translation';
|
||||
import {
|
||||
|
|
@ -257,7 +258,7 @@ const quests = {
|
|||
},
|
||||
evilsanta: {
|
||||
canBuy () {
|
||||
return false;
|
||||
return moment().isBetween('2019-12-19', '2020-02-02');
|
||||
},
|
||||
text: t('questEvilSantaText'),
|
||||
notes: t('questEvilSantaNotes'),
|
||||
|
|
@ -283,7 +284,7 @@ const quests = {
|
|||
},
|
||||
evilsanta2: {
|
||||
canBuy () {
|
||||
return false;
|
||||
return moment().isBetween('2019-12-19', '2020-02-02');
|
||||
},
|
||||
text: t('questEvilSanta2Text'),
|
||||
notes: t('questEvilSanta2Notes'),
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import moment from 'moment';
|
|||
// path: 'premiumHatchingPotions.Rainbow',
|
||||
const featuredItems = {
|
||||
market () {
|
||||
if (moment().isBetween('2019-11-01', '2019-12-02')) {
|
||||
if (moment().isBetween('2019-12-19', '2020-02-02')) {
|
||||
return [
|
||||
{
|
||||
type: 'armoire',
|
||||
|
|
@ -13,15 +13,15 @@ const featuredItems = {
|
|||
},
|
||||
{
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.Ember',
|
||||
path: 'premiumHatchingPotions.Aurora',
|
||||
},
|
||||
{
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.Thunderstorm',
|
||||
path: 'premiumHatchingPotions.Holly',
|
||||
},
|
||||
{
|
||||
type: 'food',
|
||||
path: 'food.Saddle',
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.StarryNight',
|
||||
},
|
||||
];
|
||||
}
|
||||
|
|
@ -32,11 +32,11 @@ const featuredItems = {
|
|||
},
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
path: 'hatchingPotions.Skeleton',
|
||||
path: 'hatchingPotions.White',
|
||||
},
|
||||
{
|
||||
type: 'eggs',
|
||||
path: 'eggs.Fox',
|
||||
path: 'eggs.PandaCub',
|
||||
},
|
||||
{
|
||||
type: 'food',
|
||||
|
|
@ -44,21 +44,39 @@ const featuredItems = {
|
|||
},
|
||||
];
|
||||
},
|
||||
quests: [
|
||||
{
|
||||
type: 'quests',
|
||||
path: 'quests.badger',
|
||||
},
|
||||
{
|
||||
type: 'quests',
|
||||
path: 'quests.taskwoodsTerror1',
|
||||
},
|
||||
{
|
||||
type: 'quests',
|
||||
path: 'quests.amber',
|
||||
},
|
||||
],
|
||||
seasonal: 'fall2018Rogue',
|
||||
quests () {
|
||||
if (moment().isBetween('2019-12-19', '2020-02-02')) {
|
||||
return [
|
||||
{
|
||||
type: 'bundles',
|
||||
path: 'bundles.winterQuests',
|
||||
},
|
||||
{
|
||||
type: 'quests',
|
||||
path: 'quests.evilsanta',
|
||||
},
|
||||
{
|
||||
type: 'quests',
|
||||
path: 'quests.evilsanta2',
|
||||
},
|
||||
];
|
||||
}
|
||||
return [
|
||||
{
|
||||
type: 'quests',
|
||||
path: 'quests.treeling',
|
||||
},
|
||||
{
|
||||
type: 'quests',
|
||||
path: 'quests.stoikalmCalamity1',
|
||||
},
|
||||
{
|
||||
type: 'quests',
|
||||
path: 'quests.silver',
|
||||
},
|
||||
];
|
||||
},
|
||||
seasonal: 'winter2019Warrior',
|
||||
timeTravelers: [
|
||||
// TODO
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,23 +1,30 @@
|
|||
// import { SEASONAL_SETS } from '../content/constants';
|
||||
import { SEASONAL_SETS } from '../content/constants';
|
||||
|
||||
export default {
|
||||
opened: false,
|
||||
opened: true,
|
||||
|
||||
currentSeason: 'Closed',
|
||||
currentSeason: 'Winter',
|
||||
|
||||
dateRange: { start: '2019-09-24', end: '2019-10-31' },
|
||||
dateRange: { start: '2019-12-19', end: '2020-01-31' },
|
||||
|
||||
availableSets: [
|
||||
...SEASONAL_SETS.winter,
|
||||
],
|
||||
|
||||
pinnedSets: {
|
||||
healer: 'winter2020WinterSpiceSet',
|
||||
rogue: 'winter2020LanternSet',
|
||||
warrior: 'winter2020EvergreenSet',
|
||||
wizard: 'winter2020CarolOfTheMageSet',
|
||||
},
|
||||
|
||||
availableSpells: [
|
||||
],
|
||||
|
||||
availableQuests: [
|
||||
'evilsanta',
|
||||
'evilsanta2',
|
||||
],
|
||||
|
||||
featuredSet: 'fall2018AlterEgoSet',
|
||||
featuredSet: 'winter2018GiftWrappedSet',
|
||||
};
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ shops.getQuestShop = function getQuestShop (user, language) {
|
|||
categories: shops.getQuestShopCategories(user, language),
|
||||
featured: {
|
||||
text: i18n.t('featuredQuests'),
|
||||
items: featuredItems.quests.map(i => getItemInfo(user, i.type, get(content, i.path))),
|
||||
items: featuredItems.quests().map(i => getItemInfo(user, i.type, get(content, i.path))),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 1 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 628 B |
|
After Width: | Height: | Size: 955 B |
|
After Width: | Height: | Size: 717 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 585 B |
|
After Width: | Height: | Size: 910 B |
|
After Width: | Height: | Size: 550 B |
|
After Width: | Height: | Size: 1,012 B |
|
After Width: | Height: | Size: 673 B |
|
After Width: | Height: | Size: 699 B |
|
After Width: | Height: | Size: 707 B |
|
After Width: | Height: | Size: 529 B |
|
After Width: | Height: | Size: 620 B |
|
After Width: | Height: | Size: 459 B |
|
After Width: | Height: | Size: 981 B |
|
After Width: | Height: | Size: 466 B |
|
After Width: | Height: | Size: 564 B |
|
After Width: | Height: | Size: 403 B |
|
After Width: | Height: | Size: 706 B |
|
After Width: | Height: | Size: 498 B |
|
After Width: | Height: | Size: 413 B |
|
After Width: | Height: | Size: 438 B |
|
After Width: | Height: | Size: 704 B |
|
After Width: | Height: | Size: 511 B |
|
After Width: | Height: | Size: 1 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 604 B |
|
After Width: | Height: | Size: 947 B |
|
After Width: | Height: | Size: 592 B |
|
After Width: | Height: | Size: 731 B |
|
After Width: | Height: | Size: 1 KiB |
|
After Width: | Height: | Size: 752 B |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 6 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 879 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 976 B |
|
After Width: | Height: | Size: 785 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1 KiB |
|
After Width: | Height: | Size: 713 B |
|
After Width: | Height: | Size: 930 B |
|
After Width: | Height: | Size: 761 B |
|
After Width: | Height: | Size: 747 B |
|
After Width: | Height: | Size: 764 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 724 B |
|
After Width: | Height: | Size: 875 B |
|
After Width: | Height: | Size: 867 B |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Bear-Aurora.png
Normal file
|
After Width: | Height: | Size: 966 B |
|
After Width: | Height: | Size: 853 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Fox-Aurora.png
Normal file
|
After Width: | Height: | Size: 913 B |
|
After Width: | Height: | Size: 925 B |
|
After Width: | Height: | Size: 888 B |
|
After Width: | Height: | Size: 1.1 KiB |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Wolf-Aurora.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 689 B |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
|
@ -4,7 +4,7 @@ const api = {};
|
|||
|
||||
// @TODO export this const, cannot export it from here because only routes are exported from
|
||||
// controllers
|
||||
const LAST_ANNOUNCEMENT_TITLE = 'GIFT ONE, GET ONE PROMOTION! AND BLOG POST ON RUNNING CHALLENGES';
|
||||
const LAST_ANNOUNCEMENT_TITLE = 'WINTER WONDERLAND BEGINS! CLASS OUTFITS, QUESTS, AND HATCHING POTIONS';
|
||||
const worldDmg = { // @TODO
|
||||
bailey: false,
|
||||
};
|
||||
|
|
@ -31,46 +31,67 @@ api.getNews = {
|
|||
<div class="mr-3 ${baileyClass}"></div>
|
||||
<div class="media-body">
|
||||
<h1 class="align-self-center">${res.t('newStuff')}</h1>
|
||||
<h2>12/17/2019 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
|
||||
<h2>12/19/2019 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="promo_g1g1_2019 center-block"></div>
|
||||
<h3>Gift a Subscription and Get One Free!</h3>
|
||||
<p>
|
||||
In honor of the season of giving--and due to popular demand!--we're bringing back a very
|
||||
special promotion from now until January 6. Now when you gift somebody a subscription,
|
||||
you get the same subscription for yourself for free!
|
||||
A wintery breeze is blowing in from the Stoïkalm Steppes, and the snow is gently drifting
|
||||
down over Habit City. The Winter Wonderland event has begun!
|
||||
</p>
|
||||
<div class="promo_winter_wonderland_2020 center-block"></div>
|
||||
<h3>Winter Class Outfits</h3>
|
||||
<p>
|
||||
From now until January 31st, limited edition outfits are available in the Rewards column.
|
||||
Depending on your class, you can be an Evergreen Warrior, Bell Mage, Winter Spice Healer,
|
||||
or Lantern Rogue! You'd better get productive to earn enough Gold before they disappear.
|
||||
Good luck!
|
||||
</p>
|
||||
<div class="small mb-3">by Vikte, gawrone, jjgame83, Aspiring Advocate, and SabreCat</div>
|
||||
<div class="promo_winter_wonderland_2019 center-block"></div>
|
||||
<h3>Seasonal Shop is Open!</h3>
|
||||
<p>
|
||||
The <a href='/shops/seasonal'>Seasonal Shop</a> has opened! The Seasonal Sorceress is
|
||||
stocking the seasonal edition versions of previous winter outfits, now available for Gems
|
||||
instead of Gold, and the Winter Quest Chain. Plus, there will be more fun things in the
|
||||
shop as the event progresses. The Seasonal Shop will only be open until January 31st, so
|
||||
don't wait!
|
||||
</p>
|
||||
<div class="small mb-3">
|
||||
by Lt Cabel, Vikte, AnnDeLune, Persephone, WeeWitch, katy133, yayannabelle, Stefalupagus,
|
||||
Io Breese, foreverender, Podcod, Beffymaroo, SabreCat, and Lemoness
|
||||
</div>
|
||||
<div class="promo_winter_quests_bundle center-block"></div>
|
||||
<h3>Discounted Quest Bundle: Winter Quests</h3>
|
||||
<p>
|
||||
If you're looking to add some cold weather friends to your Habitica stable, you're in
|
||||
luck! From now until January 31, you can purchase the Winter Quest Bundle and receive the
|
||||
Trapper Santa, Find the Cub, and Penguin quests, all for only 7 Gems! That's a discount
|
||||
of 5 Gems from the price of purchasing them separately. Check it out in the <a
|
||||
href='/shops/quests'>Quest Shop</a> today!
|
||||
</p>
|
||||
<div class="small">by Lemoness and SabreCat</div>
|
||||
<div class="small">
|
||||
Art by UncommonCriminal, Shaner, Eevachu, Pandoro, melynnrose, Breadstrings, Rattify, and
|
||||
PainterProphet
|
||||
</div>
|
||||
<div class="small mb-3">Writing by Lefnire, Leephon, and Daniel the Bard</div>
|
||||
<div class="promo_winter_potions_2020 center-block"></div>
|
||||
<h3>New Aurora Hatching Potions and the Return of Holly and Starry Night!</h3>
|
||||
<p>
|
||||
There's a new pet breed in town! Check out the brand-new Aurora Potions and the return
|
||||
of Holly and Starry Night Potions to brighten your Winter Wonderland avatar look. Buy
|
||||
them from <a href='/shops/market'>the Market</a> and use them to hatch any standard pet
|
||||
egg. (Magic Hatching Potions do not work on Quest Pet eggs.) Magic Hatching Potion Pets
|
||||
aren't picky, so they'll happily eat any kind of food that you feed them!
|
||||
</p>
|
||||
<p>
|
||||
Subscribers get tons of perks every month, including exclusive equipment, the ability to
|
||||
buy Gems with Gold, a special Jackalope Pet, and increased data history. Plus, it helps
|
||||
keep Habitica running :)
|
||||
After they're gone, it will be at least a year before these three Hatching Potions are
|
||||
available again, so be sure to get them now!
|
||||
</p>
|
||||
<p>
|
||||
To gift a subscription to someone on our mobile apps, just go to Menu and tap the Gift
|
||||
One Get One banner. On web, just open their profile and click the present icon in the
|
||||
upper right. You can open their profile by clicking their avatar in your party header or
|
||||
their name in chat.
|
||||
</p>
|
||||
<p>
|
||||
Please note that this promotion only applies when you gift to another Habitican. If you
|
||||
or your gift recipient already have a recurring subscription, the gifted subscription
|
||||
will only start after that subscription is cancelled or has expired.
|
||||
</p>
|
||||
<p>Thanks so much for your support! <3</p>
|
||||
<div class="scene_todos center-block"></div>
|
||||
<h3>Blog Post: Running a Challenge</h3>
|
||||
<p>
|
||||
This month's <a href="https://habitica.wordpress.com/2019/12/11/running-a-challenge/"
|
||||
target="_blank">featured Wiki article</a> is about Running a Challenge! We hope that it
|
||||
will help you as look for exciting ways to motivate yourself and others. Be sure to check
|
||||
it out, and let us know what you think by reaching out on <a
|
||||
href="https://twitter.com/habitica" target="_blank">Twitter</a>, <a
|
||||
href="http://blog.habitrpg.com" target="_blank">Tumblr</a>, and <a
|
||||
href='https://facebook.com/habitica' target="_blank">Facebook</a>.
|
||||
</p>
|
||||
<div class="small mb-3">by shanaqui and the Wiki Wizards</div>
|
||||
<div class="small mb-3">
|
||||
by QuartzFox, Archeia, Willow The Witty, JinjooHat, Tyche Alba, and SabreCat
|
||||
</div>
|
||||
</div>
|
||||
`,
|
||||
});
|
||||
|
|
|
|||