diff --git a/website/client/src/assets/scss/variables.scss b/website/client/src/assets/scss/variables.scss index 6161424969..e78bb40f29 100644 --- a/website/client/src/assets/scss/variables.scss +++ b/website/client/src/assets/scss/variables.scss @@ -2,11 +2,11 @@ // possible values are: normal, fall, habitoween, thanksgiving, winter, nye, birthday, valentines, normal, normal // 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: 'fall'; +$npc_quests_flavor: 'fall'; +$npc_seasonal_flavor: 'fall'; +$npc_timetravelers_flavor: 'fall'; +$npc_tavern_flavor: 'fall'; $restingToolbarHeight: 40px; $menuToolbarHeight: 56px; diff --git a/website/client/src/components/achievements/chooseClass.vue b/website/client/src/components/achievements/chooseClass.vue index 1f5d0e35f5..5fd34d7534 100644 --- a/website/client/src/components/achievements/chooseClass.vue +++ b/website/client/src/components/achievements/chooseClass.vue @@ -225,30 +225,31 @@ 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_fall2020Rogue', + head: 'head_special_fall2020Rogue', + shield: 'shield_special_fall2020Rogue', + weapon: 'weapon_special_fall2020Rogue', }; } if (heroClass === 'wizard') { return { - armor: 'armor_wizard_5', - head: 'head_wizard_5', - weapon: 'weapon_wizard_6', + armor: 'armor_special_fall2020Mage', + head: 'head_special_fall2020Mage', + weapon: 'weapon_special_fall2020Mage', + shield: 'shield_warrior_0', }; } if (heroClass === 'healer') { return { - armor: 'armor_healer_5', - head: 'head_healer_5', - shield: 'shield_healer_5', - weapon: 'weapon_healer_6', + armor: 'armor_special_fall2020Healer', + head: 'head_special_fall2020Healer', + shield: 'shield_special_fall2020Healer', + weapon: 'weapon_special_fall2020Healer', }; } return { - armor: 'armor_warrior_5', - head: 'head_warrior_5', - shield: 'shield_warrior_5', - weapon: 'weapon_warrior_6', + armor: 'armor_special_fall2020Warrior', + head: 'head_special_fall2020Warrior', + shield: 'shield_special_fall2020Warrior', + weapon: 'weapon_special_fall2020Warrior', }; }, selectionBox (selectedClass, heroClass) { diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index 5873e3a4ff..b3ac002b21 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -368,6 +368,15 @@ "weaponSpecialSummer2020HealerText": "Frosted Glass Rod", "weaponSpecialSummer2020HealerNotes": "As the currents wear away sharp edges, so shall your magic soften your friends' pain. Increases Intelligence by <%= int %>. Limited Edition 2020 Summer Gear.", + "weaponSpecialFall2020RogueText": "Sharp Katar", + "weaponSpecialFall2020RogueNotes": "Pierce your foe with one sharp strike! Even the thickest armor will give way to your blade. Increases Strength by <%= str %>. Limited Edition 2020 Autumn Gear.", + "weaponSpecialFall2020WarriorText": "Spectre's Sword", + "weaponSpecialFall2020WarriorNotes": "This sword went into the afterlife with a powerful Warrior, and returns for you to wield! Increases Strength by <%= str %>. Limited Edition 2020 Autumn Gear.", + "weaponSpecialFall2020MageText": "Three Visions", + "weaponSpecialFall2020MageNotes": "If aught should escape your mage sight, the brilliant crystals atop this staff shall illuminate what you overlooked. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2020 Autumn Gear.", + "weaponSpecialFall2020HealerText": "Cocoon Cane", + "weaponSpecialFall2020HealerNotes": "Now that your transformation is complete, this remnant of your life as a pupa now serves as the divining rod with which you measure destinies. Increases Intelligence by <%= int %>. Limited Edition 2020 Autumn 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", @@ -855,6 +864,15 @@ "armorSpecialSummer2020HealerText": "Regalia of Tumbling Waves", "armorSpecialSummer2020HealerNotes": "You are as patient as the ocean, as strong as the currents, as dependable as the tides. Increases Constitution by <%= con %>. Limited Edition 2020 Summer Gear.", + "armorSpecialFall2020RogueText": "Statuesque Armor", + "armorSpecialFall2020RogueNotes": "Take on the strength of stone with this armor, guaranteed to repel the fiercest attacks. Increases Perception by <%= per %>. Limited Edition 2020 Autumn Gear.", + "armorSpecialFall2020WarriorText": "Revenant's Robes", + "armorSpecialFall2020WarriorNotes": "These robes once guarded a powerful Warrior from harm. They say the Warrior's spirit lingers in the cloth to guard a worthy successor. Increases Constitution by <%= con %>. Limited Edition 2020 Autumn Gear.", + "armorSpecialFall2020MageText": "Aloft Upon Enlightenment", + "armorSpecialFall2020MageNotes": "These wide-winged robes give the impression of hovering or flight, symbolizing the far-seeing perspective granted by vast knowledge. Increases Intelligence by <%= int %>. Limited Edition 2020 Autumn Gear.", + "armorSpecialFall2020HealerText": "Hawkmoth Wings", + "armorSpecialFall2020HealerNotes": "Your splendor unfurls by night, and those who witness you in flight wonder at what this omen could mean. Increases Constitution by <%= con %>. Limited Edition 2020 Autumn 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", @@ -1439,6 +1457,15 @@ "headSpecialSummer2020HealerText": "Glass-Studded Helm", "headSpecialSummer2020HealerNotes": "Stand tall, that beachcombers may keep their hands out of your hair. Increases Intelligence by <%= int %>. Limited Edition 2020 Summer Gear.", + "headSpecialFall2020RogueText": "Two-Headed Stone Mask", + "headSpecialFall2020RogueNotes": "Look twice, act once: this mask makes it easy. Increases Perception by <%= per %>. Limited Edition 2020 Autumn Gear.", + "headSpecialFall2020WarriorText": "Creepy Cowl", + "headSpecialFall2020WarriorNotes": "The Warrior who once wore this never flinched from the weightiest tasks! But others may flinch from you when you wear it... Increases Strength by <%= str %>. Limited Edition 2020 Autumn Gear.", + "headSpecialFall2020MageText": "Awakened Clarity", + "headSpecialFall2020MageNotes": "With this cap seated perfectly on your brow, your third eye opens, allowing you to focus on what is otherwise invisible: mana flows, restless spirits, and forgotten To-Dos. Increases Perception by <%= per %>. Limited Edition 2020 Autumn Gear.", + "headSpecialFall2020HealerText": "Death's Head Mask", + "headSpecialFall2020HealerNotes": "The dreadful pallor of this skull-like visage shines as a warning to all mortals: Time is fleeting! Attend to thy deadlines, before it is too late! Increases Intelligence by <%= int %>. Limited Edition 2020 Autumn 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.", @@ -1882,6 +1909,13 @@ "shieldSpecialSummer2020HealerText": "Tumbled Glass Aegis", "shieldSpecialSummer2020HealerNotes": "As the motion of sand and water turns trash to treasure, so shall your magic turn wounds to strength. Increases Constitution by <%= con %>. Limited Edition 2020 Summer Gear.", + "shieldSpecialFall2020RogueText": "Swift Katar", + "shieldSpecialFall2020RogueNotes": "Wielding a katar, you'd better be quick on your feet... This blade will serve you well if you strike fast, but don't over-commit! Increases Strength by <%= str %>. Limited Edition 2020 Autumn Gear.", + "shieldSpecialFall2020WarriorText": "Spirit's Shield", + "shieldSpecialFall2020WarriorNotes": "It may look insubstantial, but this spectral shield can keep you safe from all kinds of harm. Increases Constitution by <%= con %>. Limited Edition 2020 Autumn Gear.", + "shieldSpecialFall2020HealerText": "Cocoon Carryall", + "shieldSpecialFall2020HealerNotes": "Is it another moth you carry, still undergoing metamorphosis? Or simply a silken handbag, containing your tools of healing and prophecy? Increases Constitution by <%= con %>. Limited Edition 2020 Autumn 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", diff --git a/website/common/locales/en/limited.json b/website/common/locales/en/limited.json index cc0384bdf2..429927b219 100644 --- a/website/common/locales/en/limited.json +++ b/website/common/locales/en/limited.json @@ -158,6 +158,10 @@ "summer2020OarfishMageSet": "Oarfish (Mage)", "summer2020SeaGlassHealerSet": "Sea Glass (Healer)", "summer2020CrocodileRogueSet": "Crocodile (Rogue)", + "fall2020WraithWarriorSet": "Wraith (Warrior)", + "fall2020DeathsHeadMothHealerSet": "Death's Head Moth (Healer)", + "fall2020ThirdEyeMageSet": "Third Eye (Mage)", + "fall2020TwoHeadedRogueSet": "Crocodile (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", diff --git a/website/common/script/content/constants.js b/website/common/script/content/constants.js index d86a35e5d3..8beea4eae5 100644 --- a/website/common/script/content/constants.js +++ b/website/common/script/content/constants.js @@ -45,6 +45,7 @@ export const EVENTS = { winter2020: { start: '2019-12-19', end: '2020-02-02' }, spring2020: { start: '2020-03-17', end: '2020-05-02' }, summer2020: { start: '2020-06-18', end: '2020-08-02' }, + fall2020: { start: '2020-09-21', end: '2020-11-02' }, }; export const SEASONAL_SETS = { @@ -214,6 +215,12 @@ export const SEASONAL_SETS = { 'fall2019LichSet', 'fall2019OperaticSpecterSet', 'fall2019RavenSet', + + // fall 2020 + 'fall2020TwoHeadedRogueSet', + 'fall2020WraithWarriorSet', + 'fall2020ThirdEyeMageSet', + 'fall2020DeathsHeadMothHealerSet', ], }; diff --git a/website/common/script/content/gear/sets/special/index.js b/website/common/script/content/gear/sets/special/index.js index 3552089b15..1426c8e892 100644 --- a/website/common/script/content/gear/sets/special/index.js +++ b/website/common/script/content/gear/sets/special/index.js @@ -1,5 +1,8 @@ import moment from 'moment'; +import defaults from 'lodash/defaults'; +import upperFirst from 'lodash/upperFirst'; import { + CLASSES, EVENTS, } from '../../../constants'; import { ownsItem } from '../../gear-helper'; @@ -9,7 +12,7 @@ import * as takeThisGear from './special-takeThis'; import * as wonderconGear from './special-wondercon'; import t from '../../../translation'; -const CURRENT_SEASON = moment().isBefore('2020-08-02') ? 'summer' : '_NONE_'; +const CURRENT_SEASON = moment().isBefore('2020-11-02') ? 'fall' : '_NONE_'; const armor = { 0: backerGear.armorSpecial0, @@ -154,163 +157,67 @@ const armor = { value: 0, }, springRogue: { - event: EVENTS.spring, - specialClass: 'rogue', set: 'stealthyKittySet', - text: t('armorSpecialSpringRogueText'), - notes: t('armorSpecialSpringRogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'spring', }, springWarrior: { - event: EVENTS.spring, - specialClass: 'warrior', set: 'mightyBunnySet', - text: t('armorSpecialSpringWarriorText'), - notes: t('armorSpecialSpringWarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'spring', }, springMage: { - event: EVENTS.spring, - specialClass: 'wizard', set: 'magicMouseSet', - text: t('armorSpecialSpringMageText'), - notes: t('armorSpecialSpringMageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'spring', }, springHealer: { - event: EVENTS.spring, - specialClass: 'healer', set: 'lovingPupSet', - text: t('armorSpecialSpringHealerText'), - notes: t('armorSpecialSpringHealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'spring', }, summerRogue: { - event: EVENTS.summer, - specialClass: 'rogue', set: 'roguishPirateSet', - text: t('armorSpecialSummerRogueText'), - notes: t('armorSpecialSummerRogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'summer', }, summerWarrior: { - event: EVENTS.summer, - specialClass: 'warrior', set: 'daringSwashbucklerSet', - text: t('armorSpecialSummerWarriorText'), - notes: t('armorSpecialSummerWarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summerMage: { - event: EVENTS.summer, - specialClass: 'wizard', set: 'emeraldMermageSet', - text: t('armorSpecialSummerMageText'), - notes: t('armorSpecialSummerMageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summerHealer: { - event: EVENTS.summer, - specialClass: 'healer', set: 'reefSeahealerSet', - text: t('armorSpecialSummerHealerText'), - notes: t('armorSpecialSummerHealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'summer', }, fallRogue: { - event: EVENTS.fall, - specialClass: 'rogue', set: 'vampireSmiterSet', - text: t('armorSpecialFallRogueText'), - notes: t('armorSpecialFallRogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'fall', }, fallWarrior: { - event: EVENTS.fall, - specialClass: 'warrior', set: 'monsterOfScienceSet', - text: t('armorSpecialFallWarriorText'), - notes: t('armorSpecialFallWarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fallMage: { - event: EVENTS.fall, - specialClass: 'wizard', set: 'witchyWizardSet', - text: t('armorSpecialFallMageText'), - notes: t('armorSpecialFallMageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fallHealer: { - event: EVENTS.fall, - specialClass: 'healer', set: 'mummyMedicSet', - text: t('armorSpecialFallHealerText'), - notes: t('armorSpecialFallHealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'fall', }, winter2015Rogue: { - event: EVENTS.winter2015, - specialClass: 'rogue', set: 'icicleDrakeSet', - text: t('armorSpecialWinter2015RogueText'), - notes: t('armorSpecialWinter2015RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'winter', }, winter2015Warrior: { - event: EVENTS.winter2015, - specialClass: 'warrior', set: 'gingerbreadSet', - text: t('armorSpecialWinter2015WarriorText'), - notes: t('armorSpecialWinter2015WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2015Mage: { - event: EVENTS.winter2015, - specialClass: 'wizard', set: 'northMageSet', - text: t('armorSpecialWinter2015MageText'), - notes: t('armorSpecialWinter2015MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2015Healer: { - event: EVENTS.winter2015, - specialClass: 'healer', set: 'soothingSkaterSet', - text: t('armorSpecialWinter2015HealerText'), - notes: t('armorSpecialWinter2015HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'winter', }, birthday2015: { @@ -320,123 +227,51 @@ const armor = { canOwn: ownsItem('armor_special_birthday2015'), }, spring2015Rogue: { - event: EVENTS.spring2015, - specialClass: 'rogue', set: 'sneakySqueakerSet', - text: t('armorSpecialSpring2015RogueText'), - notes: t('armorSpecialSpring2015RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'spring', }, spring2015Warrior: { - event: EVENTS.spring2015, - specialClass: 'warrior', set: 'bewareDogSet', - text: t('armorSpecialSpring2015WarriorText'), - notes: t('armorSpecialSpring2015WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2015Mage: { - event: EVENTS.spring2015, - specialClass: 'wizard', set: 'magicianBunnySet', - text: t('armorSpecialSpring2015MageText'), - notes: t('armorSpecialSpring2015MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2015Healer: { - event: EVENTS.spring2015, - specialClass: 'healer', set: 'comfortingKittySet', - text: t('armorSpecialSpring2015HealerText'), - notes: t('armorSpecialSpring2015HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'spring', }, summer2015Rogue: { - event: EVENTS.summer2015, - specialClass: 'rogue', set: 'reefRenegadeSet', - text: t('armorSpecialSummer2015RogueText'), - notes: t('armorSpecialSummer2015RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'summer', }, summer2015Warrior: { - event: EVENTS.summer2015, - specialClass: 'warrior', set: 'sunfishWarriorSet', - text: t('armorSpecialSummer2015WarriorText'), - notes: t('armorSpecialSummer2015WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2015Mage: { - event: EVENTS.summer2015, - specialClass: 'wizard', set: 'shipSoothsayerSet', - text: t('armorSpecialSummer2015MageText'), - notes: t('armorSpecialSummer2015MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2015Healer: { - event: EVENTS.summer2015, - specialClass: 'healer', set: 'strappingSailorSet', - text: t('armorSpecialSummer2015HealerText'), - notes: t('armorSpecialSummer2015HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'summer', }, fall2015Rogue: { - event: EVENTS.fall2015, - specialClass: 'rogue', set: 'battleRogueSet', - text: t('armorSpecialFall2015RogueText'), - notes: t('armorSpecialFall2015RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'fall', }, fall2015Warrior: { - event: EVENTS.fall2015, - specialClass: 'warrior', set: 'scarecrowWarriorSet', - text: t('armorSpecialFall2015WarriorText'), - notes: t('armorSpecialFall2015WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2015Mage: { - event: EVENTS.fall2015, - specialClass: 'wizard', set: 'stitchWitchSet', - text: t('armorSpecialFall2015MageText'), - notes: t('armorSpecialFall2015MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2015Healer: { - event: EVENTS.fall2015, - specialClass: 'healer', set: 'potionerSet', - text: t('armorSpecialFall2015HealerText'), - notes: t('armorSpecialFall2015HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'fall', }, gaymerx: { @@ -446,43 +281,19 @@ const armor = { value: 0, }, winter2016Rogue: { - event: EVENTS.winter2016, - specialClass: 'rogue', set: 'cocoaSet', - text: t('armorSpecialWinter2016RogueText'), - notes: t('armorSpecialWinter2016RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'winter', }, winter2016Warrior: { - event: EVENTS.winter2016, - specialClass: 'warrior', set: 'snowDaySet', - text: t('armorSpecialWinter2016WarriorText'), - notes: t('armorSpecialWinter2016WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2016Mage: { - event: EVENTS.winter2016, - specialClass: 'wizard', set: 'snowboardingSet', - text: t('armorSpecialWinter2016MageText'), - notes: t('armorSpecialWinter2016MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2016Healer: { - event: EVENTS.winter2016, - specialClass: 'healer', set: 'festiveFairySet', - text: t('armorSpecialWinter2016HealerText'), - notes: t('armorSpecialWinter2016HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'winter', }, birthday2016: { @@ -492,163 +303,67 @@ const armor = { canOwn: ownsItem('armor_special_birthday2016'), }, spring2016Rogue: { - event: EVENTS.spring2016, - specialClass: 'rogue', set: 'cleverDogSet', - text: t('armorSpecialSpring2016RogueText'), - notes: t('armorSpecialSpring2016RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'spring', }, spring2016Warrior: { - event: EVENTS.spring2016, - specialClass: 'warrior', set: 'braveMouseSet', - text: t('armorSpecialSpring2016WarriorText'), - notes: t('armorSpecialSpring2016WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2016Mage: { - event: EVENTS.spring2016, - specialClass: 'wizard', set: 'grandMalkinSet', - text: t('armorSpecialSpring2016MageText'), - notes: t('armorSpecialSpring2016MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2016Healer: { - event: EVENTS.spring2016, - specialClass: 'healer', set: 'springingBunnySet', - text: t('armorSpecialSpring2016HealerText'), - notes: t('armorSpecialSpring2016HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'spring', }, summer2016Rogue: { - event: EVENTS.summer2016, - specialClass: 'rogue', set: 'summer2016EelSet', - text: t('armorSpecialSummer2016RogueText'), - notes: t('armorSpecialSummer2016RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'summer', }, summer2016Warrior: { - event: EVENTS.summer2016, - specialClass: 'warrior', set: 'summer2016SharkWarriorSet', - text: t('armorSpecialSummer2016WarriorText'), - notes: t('armorSpecialSummer2016WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2016Mage: { - event: EVENTS.summer2016, - specialClass: 'wizard', set: 'summer2016DolphinMageSet', - text: t('armorSpecialSummer2016MageText'), - notes: t('armorSpecialSummer2016MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2016Healer: { - event: EVENTS.summer2016, - specialClass: 'healer', set: 'summer2016SeahorseHealerSet', - text: t('armorSpecialSummer2016HealerText'), - notes: t('armorSpecialSummer2016HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'summer', }, fall2016Rogue: { - event: EVENTS.fall2016, - specialClass: 'rogue', set: 'fall2016BlackWidowSet', - text: t('armorSpecialFall2016RogueText'), - notes: t('armorSpecialFall2016RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'fall', }, fall2016Warrior: { - event: EVENTS.fall2016, - specialClass: 'warrior', set: 'fall2016SwampThingSet', - text: t('armorSpecialFall2016WarriorText'), - notes: t('armorSpecialFall2016WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2016Mage: { - event: EVENTS.fall2016, - specialClass: 'wizard', set: 'fall2016WickedSorcererSet', - text: t('armorSpecialFall2016MageText'), - notes: t('armorSpecialFall2016MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2016Healer: { - event: EVENTS.fall2016, - specialClass: 'healer', set: 'fall2016GorgonHealerSet', - text: t('armorSpecialFall2016HealerText'), - notes: t('armorSpecialFall2016HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'fall', }, winter2017Rogue: { - event: EVENTS.winter2017, - specialClass: 'rogue', set: 'winter2017FrostyRogueSet', - text: t('armorSpecialWinter2017RogueText'), - notes: t('armorSpecialWinter2017RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'winter', }, winter2017Warrior: { - event: EVENTS.winter2017, - specialClass: 'warrior', set: 'winter2017IceHockeySet', - text: t('armorSpecialWinter2017WarriorText'), - notes: t('armorSpecialWinter2017WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2017Mage: { - event: EVENTS.winter2017, - specialClass: 'wizard', set: 'winter2017WinterWolfSet', - text: t('armorSpecialWinter2017MageText'), - notes: t('armorSpecialWinter2017MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2017Healer: { - event: EVENTS.winter2017, - specialClass: 'healer', set: 'winter2017SugarPlumSet', - text: t('armorSpecialWinter2017HealerText'), - notes: t('armorSpecialWinter2017HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'winter', }, birthday2017: { @@ -658,163 +373,67 @@ const armor = { canOwn: ownsItem('armor_special_birthday2017'), }, spring2017Rogue: { - event: EVENTS.spring2017, - specialClass: 'rogue', set: 'spring2017SneakyBunnySet', - text: t('armorSpecialSpring2017RogueText'), - notes: t('armorSpecialSpring2017RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'spring', }, spring2017Warrior: { - event: EVENTS.spring2017, - specialClass: 'warrior', set: 'spring2017FelineWarriorSet', - text: t('armorSpecialSpring2017WarriorText'), - notes: t('armorSpecialSpring2017WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2017Mage: { - event: EVENTS.spring2017, - specialClass: 'wizard', set: 'spring2017CanineConjurorSet', - text: t('armorSpecialSpring2017MageText'), - notes: t('armorSpecialSpring2017MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2017Healer: { - event: EVENTS.spring2017, - specialClass: 'healer', set: 'spring2017FloralMouseSet', - text: t('armorSpecialSpring2017HealerText'), - notes: t('armorSpecialSpring2017HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'spring', }, summer2017Rogue: { - event: EVENTS.summer2017, - specialClass: 'rogue', set: 'summer2017SeaDragonSet', - text: t('armorSpecialSummer2017RogueText'), - notes: t('armorSpecialSummer2017RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'summer', }, summer2017Warrior: { - event: EVENTS.summer2017, - specialClass: 'warrior', set: 'summer2017SandcastleWarriorSet', - text: t('armorSpecialSummer2017WarriorText'), - notes: t('armorSpecialSummer2017WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2017Mage: { - event: EVENTS.summer2017, - specialClass: 'wizard', set: 'summer2017WhirlpoolMageSet', - text: t('armorSpecialSummer2017MageText'), - notes: t('armorSpecialSummer2017MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2017Healer: { - event: EVENTS.summer2017, - specialClass: 'healer', set: 'summer2017SeashellSeahealerSet', - text: t('armorSpecialSummer2017HealerText'), - notes: t('armorSpecialSummer2017HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'summer', }, fall2017Rogue: { - event: EVENTS.fall2017, - specialClass: 'rogue', set: 'fall2017TrickOrTreatSet', - text: t('armorSpecialFall2017RogueText'), - notes: t('armorSpecialFall2017RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'fall', }, fall2017Warrior: { - event: EVENTS.fall2017, - specialClass: 'warrior', set: 'fall2017HabitoweenSet', - text: t('armorSpecialFall2017WarriorText'), - notes: t('armorSpecialFall2017WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2017Mage: { - event: EVENTS.fall2017, - specialClass: 'wizard', set: 'fall2017MasqueradeSet', - text: t('armorSpecialFall2017MageText'), - notes: t('armorSpecialFall2017MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2017Healer: { - event: EVENTS.fall2017, - specialClass: 'healer', set: 'fall2017HauntedHouseSet', - text: t('armorSpecialFall2017HealerText'), - notes: t('armorSpecialFall2017HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'fall', }, winter2018Rogue: { - event: EVENTS.winter2018, - specialClass: 'rogue', set: 'winter2018ReindeerSet', - text: t('armorSpecialWinter2018RogueText'), - notes: t('armorSpecialWinter2018RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'winter', }, winter2018Warrior: { - event: EVENTS.winter2018, - specialClass: 'warrior', set: 'winter2018GiftWrappedSet', - text: t('armorSpecialWinter2018WarriorText'), - notes: t('armorSpecialWinter2018WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2018Mage: { - event: EVENTS.winter2018, - specialClass: 'wizard', set: 'winter2018ConfettiSet', - text: t('armorSpecialWinter2018MageText'), - notes: t('armorSpecialWinter2018MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2018Healer: { - event: EVENTS.winter2018, - specialClass: 'healer', set: 'winter2018MistletoeSet', - text: t('armorSpecialWinter2018HealerText'), - notes: t('armorSpecialWinter2018HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'winter', }, birthday2018: { @@ -824,123 +443,51 @@ const armor = { canOwn: ownsItem('armor_special_birthday2018'), }, spring2018Rogue: { - event: EVENTS.spring2018, - specialClass: 'rogue', set: 'spring2018DucklingRogueSet', - text: t('armorSpecialSpring2018RogueText'), - notes: t('armorSpecialSpring2018RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'spring', }, spring2018Warrior: { - event: EVENTS.spring2018, - specialClass: 'warrior', set: 'spring2018SunriseWarriorSet', - text: t('armorSpecialSpring2018WarriorText'), - notes: t('armorSpecialSpring2018WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2018Mage: { - event: EVENTS.spring2018, - specialClass: 'wizard', set: 'spring2018TulipMageSet', - text: t('armorSpecialSpring2018MageText'), - notes: t('armorSpecialSpring2018MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2018Healer: { - event: EVENTS.spring2018, - specialClass: 'healer', set: 'spring2018GarnetHealerSet', - text: t('armorSpecialSpring2018HealerText'), - notes: t('armorSpecialSpring2018HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'spring', }, summer2018Rogue: { - event: EVENTS.summer2018, - specialClass: 'rogue', set: 'summer2018FisherRogueSet', - text: t('armorSpecialSummer2018RogueText'), - notes: t('armorSpecialSummer2018RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'summer', }, summer2018Warrior: { - event: EVENTS.summer2018, - specialClass: 'warrior', set: 'summer2018BettaFishWarriorSet', - text: t('armorSpecialSummer2018WarriorText'), - notes: t('armorSpecialSummer2018WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2018Mage: { - event: EVENTS.summer2018, - specialClass: 'wizard', set: 'summer2018LionfishMageSet', - text: t('armorSpecialSummer2018MageText'), - notes: t('armorSpecialSummer2018MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2018Healer: { - event: EVENTS.summer2018, - specialClass: 'healer', set: 'summer2018MerfolkMonarchSet', - text: t('armorSpecialSummer2018HealerText'), - notes: t('armorSpecialSummer2018HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'summer', }, fall2018Rogue: { - event: EVENTS.fall2018, - specialClass: 'rogue', set: 'fall2018AlterEgoSet', - text: t('armorSpecialFall2018RogueText'), - notes: t('armorSpecialFall2018RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'fall', }, fall2018Warrior: { - event: EVENTS.fall2018, - specialClass: 'warrior', set: 'fall2018MinotaurWarriorSet', - text: t('armorSpecialFall2018WarriorText'), - notes: t('armorSpecialFall2018WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2018Mage: { - event: EVENTS.fall2018, - specialClass: 'wizard', set: 'fall2018CandymancerMageSet', - text: t('armorSpecialFall2018MageText'), - notes: t('armorSpecialFall2018MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2018Healer: { - event: EVENTS.fall2018, - specialClass: 'healer', set: 'fall2018CarnivorousPlantSet', - text: t('armorSpecialFall2018HealerText'), - notes: t('armorSpecialFall2018HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'fall', }, turkeyArmorGilded: { @@ -950,43 +497,19 @@ const armor = { canOwn: ownsItem('armor_special_turkeyArmorGilded'), }, winter2019Rogue: { - event: EVENTS.winter2019, - specialClass: 'rogue', set: 'winter2019PoinsettiaSet', - text: t('armorSpecialWinter2019RogueText'), - notes: t('armorSpecialWinter2019RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'winter', }, winter2019Warrior: { - event: EVENTS.winter2019, - specialClass: 'warrior', set: 'winter2019BlizzardSet', - text: t('armorSpecialWinter2019WarriorText'), - notes: t('armorSpecialWinter2019WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2019Mage: { - event: EVENTS.winter2019, - specialClass: 'wizard', set: 'winter2019PyrotechnicSet', - text: t('armorSpecialWinter2019MageText'), - notes: t('armorSpecialWinter2019MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2019Healer: { - event: EVENTS.winter2019, - specialClass: 'healer', set: 'winter2019WinterStarSet', - text: t('armorSpecialWinter2019HealerText'), - notes: t('armorSpecialWinter2019HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'winter', }, birthday2019: { @@ -996,120 +519,52 @@ const armor = { canOwn: ownsItem('armor_special_birthday2019'), }, spring2019Rogue: { - event: EVENTS.spring2019, - specialClass: 'rogue', set: 'spring2019CloudRogueSet', - text: t('armorSpecialSpring2019RogueText'), - notes: t('armorSpecialSpring2019RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Warrior: { - event: EVENTS.spring2019, - specialClass: 'warrior', set: 'spring2019OrchidWarriorSet', - text: t('armorSpecialSpring2019WarriorText'), - notes: t('armorSpecialSpring2019WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Mage: { - event: EVENTS.spring2019, - specialClass: 'wizard', set: 'spring2019AmberMageSet', - text: t('armorSpecialSpring2019MageText'), - notes: t('armorSpecialSpring2019MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Healer: { - event: EVENTS.spring2019, - specialClass: 'healer', set: 'spring2019RobinHealerSet', - text: t('armorSpecialSpring2019HealerText'), - notes: t('armorSpecialSpring2019HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'spring', }, summer2019Rogue: { - event: EVENTS.summer2019, - specialClass: 'rogue', set: 'summer2019HammerheadRogueSet', - text: t('armorSpecialSummer2019RogueText'), - notes: t('armorSpecialSummer2019RogueNotes', { per: 15 }), - value: 90, - per: 15, canBuy: () => CURRENT_SEASON === 'summer', }, summer2019Warrior: { - event: EVENTS.summer2019, - specialClass: 'warrior', set: 'summer2019SeaTurtleWarriorSet', - text: t('armorSpecialSummer2019WarriorText'), - notes: t('armorSpecialSummer2019WarriorNotes', { con: 9 }), - value: 90, - con: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2019Mage: { - event: EVENTS.summer2019, - specialClass: 'wizard', set: 'summer2019WaterLilyMageSet', - text: t('armorSpecialSummer2019MageText'), - notes: t('armorSpecialSummer2019MageNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2019Healer: { - event: EVENTS.summer2019, - specialClass: 'healer', set: 'summer2019ConchHealerSet', - text: t('armorSpecialSummer2019HealerText'), - notes: t('armorSpecialSummer2019HealerNotes', { con: 15 }), - value: 90, - con: 15, canBuy: () => CURRENT_SEASON === 'summer', }, fall2019Rogue: { - event: EVENTS.fall2019, - specialClass: 'rogue', set: 'fall2019OperaticSpecterSet', - text: t('armorSpecialFall2019RogueText'), - notes: t('armorSpecialFall2019RogueNotes', { per: 15 }), - value: 90, - per: 15, + canBuy: () => CURRENT_SEASON === 'fall', }, fall2019Warrior: { - event: EVENTS.fall2019, - specialClass: 'warrior', set: 'fall2019RavenSet', - text: t('armorSpecialFall2019WarriorText'), - notes: t('armorSpecialFall2019WarriorNotes', { con: 9 }), - value: 90, - con: 9, + canBuy: () => CURRENT_SEASON === 'fall', }, fall2019Mage: { - event: EVENTS.fall2019, - specialClass: 'wizard', set: 'fall2019CyclopsSet', - text: t('armorSpecialFall2019MageText'), - notes: t('armorSpecialFall2019MageNotes', { int: 9 }), - value: 90, - int: 9, + canBuy: () => CURRENT_SEASON === 'fall', }, fall2019Healer: { - event: EVENTS.fall2019, - specialClass: 'healer', set: 'fall2019LichSet', - text: t('armorSpecialFall2019HealerText'), - notes: t('armorSpecialFall2019HealerNotes', { con: 15 }), - value: 90, - con: 15, + canBuy: () => CURRENT_SEASON === 'fall', }, ks2019: { text: t('armorSpecialKS2019Text'), @@ -1119,40 +574,20 @@ const armor = { 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, + canBuy: () => CURRENT_SEASON === 'winter', }, winter2020Warrior: { - event: EVENTS.winter2020, - specialClass: 'warrior', set: 'winter2020EvergreenSet', - text: t('armorSpecialWinter2020WarriorText'), - notes: t('armorSpecialWinter2020WarriorNotes', { con: 9 }), - value: 90, - con: 9, + canBuy: () => CURRENT_SEASON === 'winter', }, winter2020Mage: { - event: EVENTS.winter2020, - specialClass: 'wizard', set: 'winter2020CarolOfTheMageSet', - text: t('armorSpecialWinter2020MageText'), - notes: t('armorSpecialWinter2020MageNotes', { int: 9 }), - value: 90, - int: 9, + canBuy: () => CURRENT_SEASON === 'winter', }, winter2020Healer: { - event: EVENTS.winter2020, - specialClass: 'healer', set: 'winter2020WinterSpiceSet', - text: t('armorSpecialWinter2020HealerText'), - notes: t('armorSpecialWinter2020HealerNotes', { con: 15 }), - value: 90, - con: 15, + canBuy: () => CURRENT_SEASON === 'winter', }, birthday2020: { text: t('armorSpecialBirthday2020Text'), @@ -1161,79 +596,74 @@ const armor = { canOwn: ownsItem('armor_special_birthday2020'), }, spring2020Rogue: { - event: EVENTS.spring2020, - specialClass: 'rogue', set: 'spring2020LapisLazuliRogueSet', - text: t('armorSpecialSpring2020RogueText'), - notes: t('armorSpecialSpring2020RogueNotes', { per: 15 }), - value: 90, - per: 15, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2020Warrior: { - event: EVENTS.spring2020, - specialClass: 'warrior', set: 'spring2020BeetleWarriorSet', - text: t('armorSpecialSpring2020WarriorText'), - notes: t('armorSpecialSpring2020WarriorNotes', { con: 9 }), - value: 90, - con: 9, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2020Mage: { - event: EVENTS.spring2020, - specialClass: 'wizard', set: 'spring2020PuddleMageSet', - text: t('armorSpecialSpring2020MageText'), - notes: t('armorSpecialSpring2020MageNotes', { int: 9 }), - value: 90, - int: 9, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2020Healer: { - event: EVENTS.spring2020, - specialClass: 'healer', set: 'spring2020IrisHealerSet', - text: t('armorSpecialSpring2020HealerText'), - notes: t('armorSpecialSpring2020HealerNotes', { con: 15 }), - value: 90, - con: 15, + canBuy: () => CURRENT_SEASON === 'spring', }, summer2020Rogue: { - event: EVENTS.summer2020, - specialClass: 'rogue', set: 'summer2020CrocodileRogueSet', - text: t('armorSpecialSummer2020RogueText'), - notes: t('armorSpecialSummer2020RogueNotes', { per: 15 }), - value: 90, - per: 15, + canBuy: () => CURRENT_SEASON === 'summer', }, summer2020Warrior: { - event: EVENTS.summer2020, - specialClass: 'warrior', set: 'summer2020RainbowTroutWarriorSet', - text: t('armorSpecialSummer2020WarriorText'), - notes: t('armorSpecialSummer2020WarriorNotes', { con: 9 }), - value: 90, - con: 9, + canBuy: () => CURRENT_SEASON === 'summer', }, summer2020Mage: { - event: EVENTS.summer2020, - specialClass: 'wizard', set: 'summer2020OarfishMageSet', - text: t('armorSpecialSummer2020MageText'), - notes: t('armorSpecialSummer2020MageNotes', { int: 9 }), - value: 90, - int: 9, + canBuy: () => CURRENT_SEASON === 'summer', }, summer2020Healer: { - event: EVENTS.summer2020, - specialClass: 'healer', set: 'summer2020SeaGlassHealerSet', - text: t('armorSpecialSummer2020HealerText'), - notes: t('armorSpecialSummer2020HealerNotes', { con: 15 }), - value: 90, - con: 15, + canBuy: () => CURRENT_SEASON === 'summer', + }, + fall2020Rogue: { + set: 'fall2020TwoHeadedRogueSet', + }, + fall2020Warrior: { + set: 'fall2020WraithWarriorSet', + }, + fall2020Mage: { + set: 'fall2020ThirdEyeMageSet', + }, + fall2020Healer: { + set: 'fall2020DeathsHeadMothHealerSet', }, }; +const armorStats = { + healer: { con: 15 }, + rogue: { per: 15 }, + warrior: { con: 9 }, + wizard: { int: 9 }, +}; + +Object.keys(EVENTS).forEach(event => { + if (['winter', 'birthday', 'gaymerx'].indexOf(event) !== -1) return; + CLASSES.forEach(klass => { + const classNameString = klass === 'wizard' ? 'mage' : klass; + const eventString = `${event}${upperFirst(classNameString)}`; + const textString = `armorSpecial${upperFirst(event)}${upperFirst(classNameString)}`; + defaults(armor[eventString], { + event: EVENTS[event], + specialClass: klass, + text: t(`${textString}Text`), + notes: t(`${textString}Notes`, armorStats[klass]), + value: 90, + }, armorStats[klass]); + }); +}); + const back = { wondercon_red: wonderconGear.backSpecialWonderconRed, // eslint-disable-line camelcase wondercon_black: wonderconGear.backSpecialWonderconBlack, // eslint-disable-line camelcase @@ -1703,163 +1133,67 @@ const head = { canBuy: () => CURRENT_SEASON === 'winter', }, springRogue: { - event: EVENTS.spring, - specialClass: 'rogue', set: 'stealthyKittySet', - text: t('headSpecialSpringRogueText'), - notes: t('headSpecialSpringRogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'spring', }, springWarrior: { - event: EVENTS.spring, - specialClass: 'warrior', set: 'mightyBunnySet', - text: t('headSpecialSpringWarriorText'), - notes: t('headSpecialSpringWarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'spring', }, springMage: { - event: EVENTS.spring, - specialClass: 'wizard', set: 'magicMouseSet', - text: t('headSpecialSpringMageText'), - notes: t('headSpecialSpringMageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'spring', }, springHealer: { - event: EVENTS.spring, - specialClass: 'healer', set: 'lovingPupSet', - text: t('headSpecialSpringHealerText'), - notes: t('headSpecialSpringHealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'spring', }, summerRogue: { - event: EVENTS.summer, - specialClass: 'rogue', set: 'roguishPirateSet', - text: t('headSpecialSummerRogueText'), - notes: t('headSpecialSummerRogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summerWarrior: { - event: EVENTS.summer, - specialClass: 'warrior', set: 'daringSwashbucklerSet', - text: t('headSpecialSummerWarriorText'), - notes: t('headSpecialSummerWarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summerMage: { - event: EVENTS.summer, - specialClass: 'wizard', set: 'emeraldMermageSet', - text: t('headSpecialSummerMageText'), - notes: t('headSpecialSummerMageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summerHealer: { - event: EVENTS.summer, - specialClass: 'healer', set: 'reefSeahealerSet', - text: t('headSpecialSummerHealerText'), - notes: t('headSpecialSummerHealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'summer', }, fallRogue: { - event: EVENTS.fall, - specialClass: 'rogue', set: 'vampireSmiterSet', - text: t('headSpecialFallRogueText'), - notes: t('headSpecialFallRogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fallWarrior: { - event: EVENTS.fall, - specialClass: 'warrior', set: 'monsterOfScienceSet', - text: t('headSpecialFallWarriorText'), - notes: t('headSpecialFallWarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fallMage: { - event: EVENTS.fall, - specialClass: 'wizard', set: 'witchyWizardSet', - text: t('headSpecialFallMageText'), - notes: t('headSpecialFallMageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fallHealer: { - event: EVENTS.fall, - specialClass: 'healer', set: 'mummyMedicSet', - text: t('headSpecialFallHealerText'), - notes: t('headSpecialFallHealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'fall', }, winter2015Rogue: { - event: EVENTS.winter2015, - specialClass: 'rogue', set: 'icicleDrakeSet', - text: t('headSpecialWinter2015RogueText'), - notes: t('headSpecialWinter2015RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2015Warrior: { - event: EVENTS.winter2015, - specialClass: 'warrior', set: 'gingerbreadSet', - text: t('headSpecialWinter2015WarriorText'), - notes: t('headSpecialWinter2015WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2015Mage: { - event: EVENTS.winter2015, - specialClass: 'wizard', set: 'northMageSet', - text: t('headSpecialWinter2015MageText'), - notes: t('headSpecialWinter2015MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2015Healer: { - event: EVENTS.winter2015, - specialClass: 'healer', set: 'soothingSkaterSet', - text: t('headSpecialWinter2015HealerText'), - notes: t('headSpecialWinter2015HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'winter', }, nye2014: { @@ -1869,123 +1203,51 @@ const head = { canOwn: ownsItem('head_special_nye2014'), }, spring2015Rogue: { - event: EVENTS.spring2015, - specialClass: 'rogue', set: 'sneakySqueakerSet', - text: t('headSpecialSpring2015RogueText'), - notes: t('headSpecialSpring2015RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2015Warrior: { - event: EVENTS.spring2015, - specialClass: 'warrior', set: 'bewareDogSet', - text: t('headSpecialSpring2015WarriorText'), - notes: t('headSpecialSpring2015WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2015Mage: { - event: EVENTS.spring2015, - specialClass: 'wizard', set: 'magicianBunnySet', - text: t('headSpecialSpring2015MageText'), - notes: t('headSpecialSpring2015MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2015Healer: { - event: EVENTS.spring2015, - specialClass: 'healer', set: 'comfortingKittySet', - text: t('headSpecialSpring2015HealerText'), - notes: t('headSpecialSpring2015HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'spring', }, summer2015Rogue: { - event: EVENTS.summer2015, - specialClass: 'rogue', set: 'reefRenegadeSet', - text: t('headSpecialSummer2015RogueText'), - notes: t('headSpecialSummer2015RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2015Warrior: { - event: EVENTS.summer2015, - specialClass: 'warrior', set: 'sunfishWarriorSet', - text: t('headSpecialSummer2015WarriorText'), - notes: t('headSpecialSummer2015WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2015Mage: { - event: EVENTS.summer2015, - specialClass: 'wizard', set: 'shipSoothsayerSet', - text: t('headSpecialSummer2015MageText'), - notes: t('headSpecialSummer2015MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2015Healer: { - event: EVENTS.summer2015, - specialClass: 'healer', set: 'strappingSailorSet', - text: t('headSpecialSummer2015HealerText'), - notes: t('headSpecialSummer2015HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'summer', }, fall2015Rogue: { - event: EVENTS.fall2015, - specialClass: 'rogue', set: 'battleRogueSet', - text: t('headSpecialFall2015RogueText'), - notes: t('headSpecialFall2015RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2015Warrior: { - event: EVENTS.fall2015, - specialClass: 'warrior', set: 'scarecrowWarriorSet', - text: t('headSpecialFall2015WarriorText'), - notes: t('headSpecialFall2015WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2015Mage: { - event: EVENTS.fall2015, - specialClass: 'wizard', set: 'stitchWitchSet', - text: t('headSpecialFall2015MageText'), - notes: t('headSpecialFall2015MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fall2015Healer: { - event: EVENTS.fall2015, - specialClass: 'healer', set: 'potionerSet', - text: t('headSpecialFall2015HealerText'), - notes: t('headSpecialFall2015HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'fall', }, gaymerx: { @@ -1995,43 +1257,19 @@ const head = { value: 0, }, winter2016Rogue: { - event: EVENTS.winter2016, - specialClass: 'rogue', set: 'cocoaSet', - text: t('headSpecialWinter2016RogueText'), - notes: t('headSpecialWinter2016RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2016Warrior: { - event: EVENTS.winter2016, - specialClass: 'warrior', set: 'snowDaySet', - text: t('headSpecialWinter2016WarriorText'), - notes: t('headSpecialWinter2016WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2016Mage: { - event: EVENTS.winter2016, - specialClass: 'wizard', set: 'snowboardingSet', - text: t('headSpecialWinter2016MageText'), - notes: t('headSpecialWinter2016MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2016Healer: { - event: EVENTS.winter2016, - specialClass: 'healer', set: 'festiveFairySet', - text: t('headSpecialWinter2016HealerText'), - notes: t('headSpecialWinter2016HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'winter', }, nye2015: { @@ -2041,163 +1279,67 @@ const head = { canOwn: ownsItem('head_special_nye2015'), }, spring2016Rogue: { - event: EVENTS.spring2016, - specialClass: 'rogue', set: 'cleverDogSet', - text: t('headSpecialSpring2016RogueText'), - notes: t('headSpecialSpring2016RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2016Warrior: { - event: EVENTS.spring2016, - specialClass: 'warrior', set: 'braveMouseSet', - text: t('headSpecialSpring2016WarriorText'), - notes: t('headSpecialSpring2016WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2016Mage: { - event: EVENTS.spring2016, - specialClass: 'wizard', set: 'grandMalkinSet', - text: t('headSpecialSpring2016MageText'), - notes: t('headSpecialSpring2016MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2016Healer: { - event: EVENTS.spring2016, - specialClass: 'healer', set: 'springingBunnySet', - text: t('headSpecialSpring2016HealerText'), - notes: t('headSpecialSpring2016HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'spring', }, summer2016Rogue: { - event: EVENTS.summer2016, - specialClass: 'rogue', set: 'summer2016EelSet', - text: t('headSpecialSummer2016RogueText'), - notes: t('headSpecialSummer2016RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2016Warrior: { - event: EVENTS.summer2016, - specialClass: 'warrior', set: 'summer2016SharkWarriorSet', - text: t('headSpecialSummer2016WarriorText'), - notes: t('headSpecialSummer2016WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2016Mage: { - event: EVENTS.summer2016, - specialClass: 'wizard', set: 'summer2016DolphinMageSet', - text: t('headSpecialSummer2016MageText'), - notes: t('headSpecialSummer2016MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2016Healer: { - event: EVENTS.summer2016, - specialClass: 'healer', set: 'summer2016SeahorseHealerSet', - text: t('headSpecialSummer2016HealerText'), - notes: t('headSpecialSummer2016HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'summer', }, fall2016Rogue: { - event: EVENTS.fall2016, - specialClass: 'rogue', set: 'fall2016BlackWidowSet', - text: t('headSpecialFall2016RogueText'), - notes: t('headSpecialFall2016RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2016Warrior: { - event: EVENTS.fall2016, - specialClass: 'warrior', set: 'fall2016SwampThingSet', - text: t('headSpecialFall2016WarriorText'), - notes: t('headSpecialFall2016WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2016Mage: { - event: EVENTS.fall2016, - specialClass: 'wizard', set: 'fall2016WickedSorcererSet', - text: t('headSpecialFall2016MageText'), - notes: t('headSpecialFall2016MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fall2016Healer: { - event: EVENTS.fall2016, - specialClass: 'healer', set: 'fall2016GorgonHealerSet', - text: t('headSpecialFall2016HealerText'), - notes: t('headSpecialFall2016HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'fall', }, winter2017Rogue: { - event: EVENTS.winter2017, - specialClass: 'rogue', set: 'winter2017FrostyRogueSet', - text: t('headSpecialWinter2017RogueText'), - notes: t('headSpecialWinter2017RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2017Warrior: { - event: EVENTS.winter2017, - specialClass: 'warrior', set: 'winter2017IceHockeySet', - text: t('headSpecialWinter2017WarriorText'), - notes: t('headSpecialWinter2017WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2017Mage: { - event: EVENTS.winter2017, - specialClass: 'wizard', set: 'winter2017WinterWolfSet', - text: t('headSpecialWinter2017MageText'), - notes: t('headSpecialWinter2017MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2017Healer: { - event: EVENTS.winter2017, - specialClass: 'healer', set: 'winter2017SugarPlumSet', - text: t('headSpecialWinter2017HealerText'), - notes: t('headSpecialWinter2017HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'winter', }, nye2016: { @@ -2207,83 +1349,35 @@ const head = { canOwn: ownsItem('head_special_nye2016'), }, spring2017Rogue: { - event: EVENTS.spring2017, - specialClass: 'rogue', set: 'spring2017SneakyBunnySet', - text: t('headSpecialSpring2017RogueText'), - notes: t('headSpecialSpring2017RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2017Warrior: { - event: EVENTS.spring2017, - specialClass: 'warrior', set: 'spring2017FelineWarriorSet', - text: t('headSpecialSpring2017WarriorText'), - notes: t('headSpecialSpring2017WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2017Mage: { - event: EVENTS.spring2017, - specialClass: 'wizard', set: 'spring2017CanineConjurorSet', - text: t('headSpecialSpring2017MageText'), - notes: t('headSpecialSpring2017MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2017Healer: { - event: EVENTS.spring2017, - specialClass: 'healer', set: 'spring2017FloralMouseSet', - text: t('headSpecialSpring2017HealerText'), - notes: t('headSpecialSpring2017HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'spring', }, summer2017Rogue: { - event: EVENTS.summer2017, - specialClass: 'rogue', set: 'summer2017SeaDragonSet', - text: t('headSpecialSummer2017RogueText'), - notes: t('headSpecialSummer2017RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2017Warrior: { - event: EVENTS.summer2017, - specialClass: 'warrior', set: 'summer2017SandcastleWarriorSet', - text: t('headSpecialSummer2017WarriorText'), - notes: t('headSpecialSummer2017WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2017Mage: { - event: EVENTS.summer2017, - specialClass: 'wizard', set: 'summer2017WhirlpoolMageSet', - text: t('headSpecialSummer2017MageText'), - notes: t('headSpecialSummer2017MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2017Healer: { - event: EVENTS.summer2017, - specialClass: 'healer', set: 'summer2017SeashellSeahealerSet', - text: t('headSpecialSummer2017HealerText'), - notes: t('headSpecialSummer2017HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'summer', }, namingDay2017: { @@ -2293,43 +1387,19 @@ const head = { canOwn: ownsItem('head_special_namingDay2017'), }, fall2017Rogue: { - event: EVENTS.fall2017, - specialClass: 'rogue', set: 'fall2017TrickOrTreatSet', - text: t('headSpecialFall2017RogueText'), - notes: t('headSpecialFall2017RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2017Warrior: { - event: EVENTS.fall2017, - specialClass: 'warrior', set: 'fall2017HabitoweenSet', - text: t('headSpecialFall2017WarriorText'), - notes: t('headSpecialFall2017WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2017Mage: { - event: EVENTS.fall2017, - specialClass: 'wizard', set: 'fall2017MasqueradeSet', - text: t('headSpecialFall2017MageText'), - notes: t('headSpecialFall2017MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fall2017Healer: { - event: EVENTS.fall2017, - specialClass: 'healer', set: 'fall2017HauntedHouseSet', - text: t('headSpecialFall2017HealerText'), - notes: t('headSpecialFall2017HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'fall', }, nye2017: { @@ -2339,163 +1409,67 @@ const head = { canOwn: ownsItem('head_special_nye2017'), }, winter2018Rogue: { - event: EVENTS.winter2018, - specialClass: 'rogue', set: 'winter2018ReindeerSet', - text: t('headSpecialWinter2018RogueText'), - notes: t('headSpecialWinter2018RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2018Warrior: { - event: EVENTS.winter2018, - specialClass: 'warrior', set: 'winter2018GiftWrappedSet', - text: t('headSpecialWinter2018WarriorText'), - notes: t('headSpecialWinter2018WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2018Mage: { - event: EVENTS.winter2018, - specialClass: 'wizard', set: 'winter2018ConfettiSet', - text: t('headSpecialWinter2018MageText'), - notes: t('headSpecialWinter2018MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2018Healer: { - event: EVENTS.winter2018, - specialClass: 'healer', set: 'winter2018MistletoeSet', - text: t('headSpecialWinter2018HealerText'), - notes: t('headSpecialWinter2018HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'winter', }, spring2018Rogue: { - event: EVENTS.spring2018, - specialClass: 'rogue', set: 'spring2018DucklingRogueSet', - text: t('headSpecialSpring2018RogueText'), - notes: t('headSpecialSpring2018RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2018Warrior: { - event: EVENTS.spring2018, - specialClass: 'warrior', set: 'spring2018SunriseWarriorSet', - text: t('headSpecialSpring2018WarriorText'), - notes: t('headSpecialSpring2018WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2018Mage: { - event: EVENTS.spring2018, - specialClass: 'wizard', set: 'spring2018TulipMageSet', - text: t('headSpecialSpring2018MageText'), - notes: t('headSpecialSpring2018MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2018Healer: { - event: EVENTS.spring2018, - specialClass: 'healer', set: 'spring2018GarnetHealerSet', - text: t('headSpecialSpring2018HealerText'), - notes: t('headSpecialSpring2018HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'spring', }, summer2018Rogue: { - event: EVENTS.summer2018, - specialClass: 'rogue', set: 'summer2018FisherRogueSet', - text: t('headSpecialSummer2018RogueText'), - notes: t('headSpecialSummer2018RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2018Warrior: { - event: EVENTS.summer2018, - specialClass: 'warrior', set: 'summer2018BettaFishWarriorSet', - text: t('headSpecialSummer2018WarriorText'), - notes: t('headSpecialSummer2018WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2018Mage: { - event: EVENTS.summer2018, - specialClass: 'wizard', set: 'summer2018LionfishMageSet', - text: t('headSpecialSummer2018MageText'), - notes: t('headSpecialSummer2018MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2018Healer: { - event: EVENTS.summer2018, - specialClass: 'healer', set: 'summer2018MerfolkMonarchSet', - text: t('headSpecialSummer2018HealerText'), - notes: t('headSpecialSummer2018HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'summer', }, fall2018Rogue: { - event: EVENTS.fall2018, - specialClass: 'rogue', set: 'fall2018AlterEgoSet', - text: t('headSpecialFall2018RogueText'), - notes: t('headSpecialFall2018RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2018Warrior: { - event: EVENTS.fall2018, - specialClass: 'warrior', set: 'fall2018MinotaurWarriorSet', - text: t('headSpecialFall2018WarriorText'), - notes: t('headSpecialFall2018WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'fall', }, fall2018Mage: { - event: EVENTS.fall2018, - specialClass: 'wizard', set: 'fall2018CandymancerMageSet', - text: t('headSpecialFall2018MageText'), - notes: t('headSpecialFall2018MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fall2018Healer: { - event: EVENTS.fall2018, - specialClass: 'healer', set: 'fall2018CarnivorousPlantSet', - text: t('headSpecialFall2018HealerText'), - notes: t('headSpecialFall2018HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'fall', }, turkeyHelmGilded: { @@ -2505,43 +1479,19 @@ const head = { canOwn: ownsItem('head_special_turkeyHelmGilded'), }, winter2019Rogue: { - event: EVENTS.winter2019, - specialClass: 'rogue', set: 'winter2019PoinsettiaSet', - text: t('headSpecialWinter2019RogueText'), - notes: t('headSpecialWinter2019RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2019Warrior: { - event: EVENTS.winter2019, - specialClass: 'warrior', set: 'winter2019BlizzardSet', - text: t('headSpecialWinter2019WarriorText'), - notes: t('headSpecialWinter2019WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'winter', }, winter2019Mage: { - event: EVENTS.winter2019, - specialClass: 'wizard', set: 'winter2019PyrotechnicSet', - text: t('headSpecialWinter2019MageText'), - notes: t('headSpecialWinter2019MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2019Healer: { - event: EVENTS.winter2019, - specialClass: 'healer', set: 'winter2019WinterStarSet', - text: t('headSpecialWinter2019HealerText'), - notes: t('headSpecialWinter2019HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'winter', }, nye2018: { @@ -2557,120 +1507,52 @@ const head = { canOwn: ownsItem('head_special_piDay'), }, spring2019Rogue: { - event: EVENTS.spring2019, - specialClass: 'rogue', set: 'spring2019CloudRogueSet', - text: t('headSpecialSpring2019RogueText'), - notes: t('headSpecialSpring2019RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Warrior: { - event: EVENTS.spring2019, - specialClass: 'warrior', set: 'spring2019OrchidWarriorSet', - text: t('headSpecialSpring2019WarriorText'), - notes: t('headSpecialSpring2019WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Mage: { - event: EVENTS.spring2019, - specialClass: 'wizard', set: 'spring2019AmberMageSet', - text: t('headSpecialSpring2019MageText'), - notes: t('headSpecialSpring2019MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Healer: { - event: EVENTS.spring2019, - specialClass: 'healer', set: 'spring2019RobinHealerSet', - text: t('headSpecialSpring2019HealerText'), - notes: t('headSpecialSpring2019HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'spring', }, summer2019Rogue: { - event: EVENTS.summer2019, - specialClass: 'rogue', set: 'summer2019HammerheadRogueSet', - text: t('headSpecialSummer2019RogueText'), - notes: t('headSpecialSummer2019RogueNotes', { per: 9 }), - value: 60, - per: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2019Warrior: { - event: EVENTS.summer2019, - specialClass: 'warrior', set: 'summer2019SeaTurtleWarriorSet', - text: t('headSpecialSummer2019WarriorText'), - notes: t('headSpecialSummer2019WarriorNotes', { str: 9 }), - value: 60, - str: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2019Mage: { - event: EVENTS.summer2019, - specialClass: 'wizard', set: 'summer2019WaterLilyMageSet', - text: t('headSpecialSummer2019MageText'), - notes: t('headSpecialSummer2019MageNotes', { per: 7 }), - value: 60, - per: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2019Healer: { - event: EVENTS.summer2019, - specialClass: 'healer', set: 'summer2019ConchHealerSet', - text: t('headSpecialSummer2019HealerText'), - notes: t('headSpecialSummer2019HealerNotes', { int: 7 }), - value: 60, - int: 7, canBuy: () => CURRENT_SEASON === 'summer', }, fall2019Rogue: { - event: EVENTS.fall2019, - specialClass: 'rogue', set: 'fall2019OperaticSpecterSet', - text: t('headSpecialFall2019RogueText'), - notes: t('headSpecialFall2019RogueNotes', { per: 9 }), - value: 60, - per: 9, + canBuy: () => CURRENT_SEASON === 'fall', }, fall2019Warrior: { - event: EVENTS.fall2019, - specialClass: 'warrior', set: 'fall2019RavenSet', - text: t('headSpecialFall2019WarriorText'), - notes: t('headSpecialFall2019WarriorNotes', { str: 9 }), - value: 60, - str: 9, + canBuy: () => CURRENT_SEASON === 'fall', }, fall2019Mage: { - event: EVENTS.fall2019, - specialClass: 'wizard', set: 'fall2019CyclopsSet', - text: t('headSpecialFall2019MageText'), - notes: t('headSpecialFall2019MageNotes', { per: 7 }), - value: 60, - per: 7, + canBuy: () => CURRENT_SEASON === 'fall', }, fall2019Healer: { - event: EVENTS.fall2019, - specialClass: 'healer', set: 'fall2019LichSet', - text: t('headSpecialFall2019HealerText'), - notes: t('headSpecialFall2019HealerNotes', { int: 7 }), - value: 60, - int: 7, + canBuy: () => CURRENT_SEASON === 'fall', }, ks2019: { text: t('headSpecialKS2019Text'), @@ -2680,40 +1562,20 @@ const head = { 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, + canBuy: () => CURRENT_SEASON === 'winter', }, winter2020Warrior: { - event: EVENTS.winter2020, - specialClass: 'warrior', set: 'winter2020EvergreenSet', - text: t('headSpecialWinter2020WarriorText'), - notes: t('headSpecialWinter2020WarriorNotes', { str: 9 }), - value: 60, - str: 9, + canBuy: () => CURRENT_SEASON === 'winter', }, winter2020Mage: { - event: EVENTS.winter2020, - specialClass: 'wizard', set: 'winter2020CarolOfTheMageSet', - text: t('headSpecialWinter2020MageText'), - notes: t('headSpecialWinter2020MageNotes', { per: 7 }), - value: 60, - per: 7, + canBuy: () => CURRENT_SEASON === 'winter', }, winter2020Healer: { - event: EVENTS.winter2020, - specialClass: 'healer', set: 'winter2020WinterSpiceSet', - text: t('headSpecialWinter2020HealerText'), - notes: t('headSpecialWinter2020HealerNotes', { int: 7 }), - value: 60, - int: 7, + canBuy: () => CURRENT_SEASON === 'winter', }, nye2019: { text: t('headSpecialNye2019Text'), @@ -2722,79 +1584,74 @@ const head = { canOwn: ownsItem('head_special_nye2019'), }, spring2020Rogue: { - event: EVENTS.spring2020, - specialClass: 'rogue', set: 'spring2020LapisLazuliRogueSet', - text: t('headSpecialSpring2020RogueText'), - notes: t('headSpecialSpring2020RogueNotes', { per: 9 }), - value: 60, - per: 9, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2020Warrior: { - event: EVENTS.spring2020, - specialClass: 'warrior', set: 'spring2020BeetleWarriorSet', - text: t('headSpecialSpring2020WarriorText'), - notes: t('headSpecialSpring2020WarriorNotes', { str: 9 }), - value: 60, - str: 9, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2020Mage: { - event: EVENTS.spring2020, - specialClass: 'wizard', set: 'spring2020PuddleMageSet', - text: t('headSpecialSpring2020MageText'), - notes: t('headSpecialSpring2020MageNotes', { per: 7 }), - value: 60, - per: 7, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2020Healer: { - event: EVENTS.spring2020, - specialClass: 'healer', set: 'spring2020IrisHealerSet', - text: t('headSpecialSpring2020HealerText'), - notes: t('headSpecialSpring2020HealerNotes', { int: 7 }), - value: 60, - int: 7, + canBuy: () => CURRENT_SEASON === 'spring', }, summer2020Rogue: { - event: EVENTS.summer2020, - specialClass: 'rogue', set: 'summer2020CrocodileRogueSet', - text: t('headSpecialSummer2020RogueText'), - notes: t('headSpecialSummer2020RogueNotes', { per: 9 }), - value: 60, - per: 9, + canBuy: () => CURRENT_SEASON === 'summer', }, summer2020Warrior: { - event: EVENTS.summer2020, - specialClass: 'warrior', set: 'summer2020RainbowTroutWarriorSet', - text: t('headSpecialSummer2020WarriorText'), - notes: t('headSpecialSummer2020WarriorNotes', { str: 9 }), - value: 60, - str: 9, + canBuy: () => CURRENT_SEASON === 'summer', }, summer2020Mage: { - event: EVENTS.summer2020, - specialClass: 'wizard', set: 'summer2020OarfishMageSet', - text: t('headSpecialSummer2020MageText'), - notes: t('headSpecialSummer2020MageNotes', { per: 7 }), - value: 60, - per: 7, + canBuy: () => CURRENT_SEASON === 'summer', }, summer2020Healer: { - event: EVENTS.summer2020, - specialClass: 'healer', set: 'summer2020SeaGlassHealerSet', - text: t('headSpecialSummer2020HealerText'), - notes: t('headSpecialSummer2020HealerNotes', { int: 7 }), - value: 60, - int: 7, + canBuy: () => CURRENT_SEASON === 'summer', + }, + fall2020Rogue: { + set: 'fall2020TwoHeadedRogueSet', + }, + fall2020Warrior: { + set: 'fall2020WraithWarriorSet', + }, + fall2020Mage: { + set: 'fall2020ThirdEyeMageSet', + }, + fall2020Healer: { + set: 'fall2020DeathsHeadMothHealerSet', }, }; +const headStats = { + healer: { int: 7 }, + rogue: { per: 9 }, + warrior: { str: 9 }, + wizard: { per: 7 }, +}; + +Object.keys(EVENTS).forEach(event => { + if (['winter', 'birthday', 'gaymerx'].indexOf(event) !== -1) return; + CLASSES.forEach(klass => { + const classNameString = klass === 'wizard' ? 'mage' : klass; + const eventString = `${event}${upperFirst(classNameString)}`; + const textString = `headSpecial${upperFirst(event)}${upperFirst(classNameString)}`; + defaults(head[eventString], { + event: EVENTS[event], + specialClass: klass, + text: t(`${textString}Text`), + notes: t(`${textString}Notes`, headStats[klass]), + value: 60, + }, headStats[klass]); + }); +}); + const headAccessory = { springRogue: { event: EVENTS.spring, @@ -3147,603 +2004,245 @@ const shield = { canBuy: () => CURRENT_SEASON === 'winter', }, springRogue: { - event: EVENTS.spring, - specialClass: 'rogue', set: 'stealthyKittySet', - text: t('weaponSpecialSpringRogueText'), - notes: t('weaponSpecialSpringRogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'spring', }, springWarrior: { - event: EVENTS.spring, - specialClass: 'warrior', set: 'mightyBunnySet', - text: t('shieldSpecialSpringWarriorText'), - notes: t('shieldSpecialSpringWarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'spring', }, springHealer: { - event: EVENTS.spring, - specialClass: 'healer', set: 'lovingPupSet', - text: t('shieldSpecialSpringHealerText'), - notes: t('shieldSpecialSpringHealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'spring', }, summerRogue: { - event: EVENTS.summer, - specialClass: 'rogue', set: 'roguishPirateSet', - text: t('weaponSpecialSummerRogueText'), - notes: t('weaponSpecialSummerRogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'summer', }, summerWarrior: { - event: EVENTS.summer, - specialClass: 'warrior', set: 'daringSwashbucklerSet', - text: t('shieldSpecialSummerWarriorText'), - notes: t('shieldSpecialSummerWarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summerHealer: { - event: EVENTS.summer, - specialClass: 'healer', set: 'reefSeahealerSet', - text: t('shieldSpecialSummerHealerText'), - notes: t('shieldSpecialSummerHealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'summer', }, fallRogue: { - event: EVENTS.fall, - specialClass: 'rogue', set: 'vampireSmiterSet', - text: t('weaponSpecialFallRogueText'), - notes: t('weaponSpecialFallRogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'fall', }, fallWarrior: { - event: EVENTS.fall, - specialClass: 'warrior', set: 'monsterOfScienceSet', - text: t('shieldSpecialFallWarriorText'), - notes: t('shieldSpecialFallWarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fallHealer: { - event: EVENTS.fall, - specialClass: 'healer', set: 'mummyMedicSet', - text: t('shieldSpecialFallHealerText'), - notes: t('shieldSpecialFallHealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'fall', }, winter2015Rogue: { - event: EVENTS.winter2015, - specialClass: 'rogue', set: 'icicleDrakeSet', - text: t('weaponSpecialWinter2015RogueText'), - notes: t('weaponSpecialWinter2015RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'winter', }, winter2015Warrior: { - event: EVENTS.winter2015, - specialClass: 'warrior', set: 'gingerbreadSet', - text: t('shieldSpecialWinter2015WarriorText'), - notes: t('shieldSpecialWinter2015WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2015Healer: { - event: EVENTS.winter2015, - specialClass: 'healer', set: 'soothingSkaterSet', - text: t('shieldSpecialWinter2015HealerText'), - notes: t('shieldSpecialWinter2015HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'winter', }, spring2015Rogue: { - event: EVENTS.spring2015, - specialClass: 'rogue', set: 'sneakySqueakerSet', - text: t('weaponSpecialSpring2015RogueText'), - notes: t('weaponSpecialSpring2015RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'spring', }, spring2015Warrior: { - event: EVENTS.spring2015, - specialClass: 'warrior', set: 'bewareDogSet', - text: t('shieldSpecialSpring2015WarriorText'), - notes: t('shieldSpecialSpring2015WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2015Healer: { - event: EVENTS.spring2015, - specialClass: 'healer', set: 'comfortingKittySet', - text: t('shieldSpecialSpring2015HealerText'), - notes: t('shieldSpecialSpring2015HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'spring', }, summer2015Rogue: { - event: EVENTS.summer2015, - specialClass: 'rogue', set: 'reefRenegadeSet', - text: t('weaponSpecialSummer2015RogueText'), - notes: t('weaponSpecialSummer2015RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'summer', }, summer2015Warrior: { - event: EVENTS.summer2015, - specialClass: 'warrior', set: 'sunfishWarriorSet', - text: t('shieldSpecialSummer2015WarriorText'), - notes: t('shieldSpecialSummer2015WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2015Healer: { - event: EVENTS.summer2015, - specialClass: 'healer', set: 'strappingSailorSet', - text: t('shieldSpecialSummer2015HealerText'), - notes: t('shieldSpecialSummer2015HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'summer', }, fall2015Rogue: { - event: EVENTS.fall2015, - specialClass: 'rogue', set: 'battleRogueSet', - text: t('weaponSpecialFall2015RogueText'), - notes: t('weaponSpecialFall2015RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'fall', }, fall2015Warrior: { - event: EVENTS.fall2015, - specialClass: 'warrior', set: 'scarecrowWarriorSet', - text: t('shieldSpecialFall2015WarriorText'), - notes: t('shieldSpecialFall2015WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fall2015Healer: { - event: EVENTS.fall2015, - specialClass: 'healer', set: 'potionerSet', - text: t('shieldSpecialFall2015HealerText'), - notes: t('shieldSpecialFall2015HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'fall', }, winter2016Rogue: { - event: EVENTS.winter2016, - specialClass: 'rogue', set: 'cocoaSet', - text: t('weaponSpecialWinter2016RogueText'), - notes: t('weaponSpecialWinter2016RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'winter', }, winter2016Warrior: { - event: EVENTS.winter2016, - specialClass: 'warrior', set: 'snowDaySet', - text: t('shieldSpecialWinter2016WarriorText'), - notes: t('shieldSpecialWinter2016WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2016Healer: { - event: EVENTS.winter2016, - specialClass: 'healer', set: 'festiveFairySet', - text: t('shieldSpecialWinter2016HealerText'), - notes: t('shieldSpecialWinter2016HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'winter', }, spring2016Rogue: { - event: EVENTS.spring2016, - specialClass: 'rogue', set: 'cleverDogSet', - text: t('weaponSpecialSpring2016RogueText'), - notes: t('weaponSpecialSpring2016RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'spring', }, spring2016Warrior: { - event: EVENTS.spring2016, - specialClass: 'warrior', set: 'braveMouseSet', - text: t('shieldSpecialSpring2016WarriorText'), - notes: t('shieldSpecialSpring2016WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2016Healer: { - event: EVENTS.spring2016, - specialClass: 'healer', set: 'springingBunnySet', - text: t('shieldSpecialSpring2016HealerText'), - notes: t('shieldSpecialSpring2016HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'spring', }, summer2016Rogue: { - event: EVENTS.summer2016, - specialClass: 'rogue', set: 'summer2016EelSet', - text: t('weaponSpecialSummer2016RogueText'), - notes: t('weaponSpecialSummer2016RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'summer', }, summer2016Warrior: { - event: EVENTS.summer2016, - specialClass: 'warrior', set: 'summer2016SharkWarriorSet', - text: t('shieldSpecialSummer2016WarriorText'), - notes: t('shieldSpecialSummer2016WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2016Healer: { - event: EVENTS.summer2016, - specialClass: 'healer', set: 'summer2016SeahorseHealerSet', - text: t('shieldSpecialSummer2016HealerText'), - notes: t('shieldSpecialSummer2016HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'summer', }, fall2016Rogue: { - event: EVENTS.fall2016, - specialClass: 'rogue', set: 'fall2016BlackWidowSet', - text: t('weaponSpecialFall2016RogueText'), - notes: t('weaponSpecialFall2016RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'fall', }, fall2016Warrior: { - event: EVENTS.fall2016, - specialClass: 'warrior', set: 'fall2016SwampThingSet', - text: t('shieldSpecialFall2016WarriorText'), - notes: t('shieldSpecialFall2016WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fall2016Healer: { - event: EVENTS.fall2016, - specialClass: 'healer', set: 'fall2016GorgonHealerSet', - text: t('shieldSpecialFall2016HealerText'), - notes: t('shieldSpecialFall2016HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'fall', }, winter2017Rogue: { - event: EVENTS.winter2017, - specialClass: 'rogue', set: 'winter2017FrostyRogueSet', - text: t('weaponSpecialWinter2017RogueText'), - notes: t('weaponSpecialWinter2017RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'winter', }, winter2017Warrior: { - event: EVENTS.winter2017, - specialClass: 'warrior', set: 'winter2017IceHockeySet', - text: t('shieldSpecialWinter2017WarriorText'), - notes: t('shieldSpecialWinter2017WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2017Healer: { - event: EVENTS.winter2017, - specialClass: 'healer', set: 'winter2017SugarPlumSet', - text: t('shieldSpecialWinter2017HealerText'), - notes: t('shieldSpecialWinter2017HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'winter', }, spring2017Rogue: { - event: EVENTS.spring2017, - specialClass: 'rogue', set: 'spring2017SneakyBunnySet', - text: t('weaponSpecialSpring2017RogueText'), - notes: t('weaponSpecialSpring2017RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'spring', }, spring2017Warrior: { - event: EVENTS.spring2017, - specialClass: 'warrior', set: 'spring2017FelineWarriorSet', - text: t('shieldSpecialSpring2017WarriorText'), - notes: t('shieldSpecialSpring2017WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2017Healer: { - event: EVENTS.spring2017, - specialClass: 'healer', set: 'spring2017FloralMouseSet', - text: t('shieldSpecialSpring2017HealerText'), - notes: t('shieldSpecialSpring2017HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'spring', }, summer2017Rogue: { - event: EVENTS.summer2017, - specialClass: 'rogue', set: 'summer2017SeaDragonSet', - text: t('weaponSpecialSummer2017RogueText'), - notes: t('weaponSpecialSummer2017RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'summer', }, summer2017Warrior: { - event: EVENTS.summer2017, - specialClass: 'warrior', set: 'summer2017SandcastleWarriorSet', - text: t('shieldSpecialSummer2017WarriorText'), - notes: t('shieldSpecialSummer2017WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2017Healer: { - event: EVENTS.summer2017, - specialClass: 'healer', set: 'summer2017SeashellSeahealerSet', - text: t('shieldSpecialSummer2017HealerText'), - notes: t('shieldSpecialSummer2017HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'summer', }, fall2017Rogue: { - event: EVENTS.fall2017, - specialClass: 'rogue', set: 'fall2017TrickOrTreatSet', - text: t('weaponSpecialFall2017RogueText'), - notes: t('weaponSpecialFall2017RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'fall', }, fall2017Warrior: { - event: EVENTS.fall2017, - specialClass: 'warrior', set: 'fall2017HabitoweenSet', - text: t('shieldSpecialFall2017WarriorText'), - notes: t('shieldSpecialFall2017WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fall2017Healer: { - event: EVENTS.fall2017, - specialClass: 'healer', set: 'fall2017HauntedHouseSet', - text: t('shieldSpecialFall2017HealerText'), - notes: t('shieldSpecialFall2017HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'fall', }, winter2018Rogue: { - event: EVENTS.winter2018, - specialClass: 'rogue', set: 'winter2018ReindeerSet', - text: t('weaponSpecialWinter2018RogueText'), - notes: t('weaponSpecialWinter2018RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'winter', }, winter2018Warrior: { - event: EVENTS.winter2018, - specialClass: 'warrior', set: 'winter2018GiftWrappedSet', - text: t('shieldSpecialWinter2018WarriorText'), - notes: t('shieldSpecialWinter2018WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2018Healer: { - event: EVENTS.winter2018, - specialClass: 'healer', set: 'winter2018MistletoeSet', - text: t('shieldSpecialWinter2018HealerText'), - notes: t('shieldSpecialWinter2018HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'winter', }, spring2018Rogue: { - event: EVENTS.spring2018, - specialClass: 'rogue', set: 'spring2018DucklingRogueSet', - text: t('weaponSpecialSpring2018RogueText'), - notes: t('weaponSpecialSpring2018RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'spring', }, spring2018Warrior: { - event: EVENTS.spring2018, - specialClass: 'warrior', set: 'spring2018SunriseWarriorSet', - text: t('shieldSpecialSpring2018WarriorText'), - notes: t('shieldSpecialSpring2018WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2018Healer: { - event: EVENTS.spring2018, - specialClass: 'healer', set: 'spring2018GarnetHealerSet', - text: t('shieldSpecialSpring2018HealerText'), - notes: t('shieldSpecialSpring2018HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'spring', }, summer2018Rogue: { - event: EVENTS.summer2018, - specialClass: 'rogue', set: 'summer2018FisherRogueSet', - text: t('weaponSpecialSummer2018RogueText'), - notes: t('weaponSpecialSummer2018RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'summer', }, summer2018Warrior: { - event: EVENTS.summer2018, - specialClass: 'warrior', set: 'summer2018BettaFishWarriorSet', - text: t('shieldSpecialSummer2018WarriorText'), - notes: t('shieldSpecialSummer2018WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2018Healer: { - event: EVENTS.summer2018, - specialClass: 'healer', set: 'summer2018MerfolkMonarchSet', - text: t('shieldSpecialSummer2018HealerText'), - notes: t('shieldSpecialSummer2018HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'summer', }, fall2018Rogue: { - event: EVENTS.fall2018, - specialClass: 'rogue', set: 'fall2018AlterEgoSet', text: t('shieldSpecialFall2018RogueText'), notes: t('shieldSpecialFall2018RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'fall', }, fall2018Warrior: { - event: EVENTS.fall2018, - specialClass: 'warrior', set: 'fall2018MinotaurWarriorSet', - text: t('shieldSpecialFall2018WarriorText'), - notes: t('shieldSpecialFall2018WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fall2018Healer: { - event: EVENTS.fall2018, - specialClass: 'healer', set: 'fall2018CarnivorousPlantSet', - text: t('shieldSpecialFall2018HealerText'), - notes: t('shieldSpecialFall2018HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'fall', }, winter2019Rogue: { - event: EVENTS.winter2019, - specialClass: 'rogue', set: 'winter2019PoinsettiaSet', - text: t('weaponSpecialWinter2019RogueText'), - notes: t('weaponSpecialWinter2019RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'winter', }, winter2019Warrior: { - event: EVENTS.winter2019, - specialClass: 'warrior', set: 'winter2019BlizzardSet', - text: t('shieldSpecialWinter2019WarriorText'), - notes: t('shieldSpecialWinter2019WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2019Healer: { - event: EVENTS.winter2019, - specialClass: 'healer', set: 'winter2019WinterStarSet', - text: t('shieldSpecialWinter2019HealerText'), - notes: t('shieldSpecialWinter2019HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'winter', }, piDay: { @@ -3753,63 +2252,27 @@ const shield = { canOwn: ownsItem('shield_special_piDay'), }, spring2019Rogue: { - event: EVENTS.spring2019, - specialClass: 'rogue', set: 'spring2019CloudRogueSet', - text: t('weaponSpecialSpring2019RogueText'), - notes: t('weaponSpecialSpring2019RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Warrior: { - event: EVENTS.spring2019, - specialClass: 'warrior', set: 'spring2019OrchidWarriorSet', - text: t('shieldSpecialSpring2019WarriorText'), - notes: t('shieldSpecialSpring2019WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Healer: { - event: EVENTS.spring2019, - specialClass: 'healer', set: 'spring2019RobinHealerSet', - text: t('shieldSpecialSpring2019HealerText'), - notes: t('shieldSpecialSpring2019HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'spring', }, summer2019Rogue: { - event: EVENTS.summer2019, - specialClass: 'rogue', set: 'summer2019HammerheadRogueSet', - text: t('weaponSpecialSummer2019RogueText'), - notes: t('weaponSpecialSummer2019RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'summer', }, summer2019Warrior: { - event: EVENTS.summer2019, - specialClass: 'warrior', set: 'summer2019SeaTurtleWarriorSet', - text: t('shieldSpecialSummer2019WarriorText'), - notes: t('shieldSpecialSummer2019WarriorNotes', { con: 7 }), - value: 70, - con: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2019Healer: { - event: EVENTS.summer2019, - specialClass: 'healer', set: 'summer2019ConchHealerSet', - text: t('shieldSpecialSummer2019HealerText'), - notes: t('shieldSpecialSummer2019HealerNotes', { con: 9 }), - value: 70, - con: 9, canBuy: () => CURRENT_SEASON === 'summer', }, summer2019Mage: { @@ -3823,31 +2286,16 @@ const shield = { canBuy: () => CURRENT_SEASON === 'summer', }, fall2019Rogue: { - event: EVENTS.fall2019, - specialClass: 'rogue', set: 'fall2019OperaticSpecterSet', - text: t('weaponSpecialFall2019RogueText'), - notes: t('weaponSpecialFall2019RogueNotes', { str: 8 }), - value: 80, - str: 8, + canBuy: () => CURRENT_SEASON === 'fall', }, fall2019Warrior: { - event: EVENTS.fall2019, - specialClass: 'warrior', set: 'fall2019RavenSet', - text: t('shieldSpecialFall2019WarriorText'), - notes: t('shieldSpecialFall2019WarriorNotes', { con: 7 }), - value: 70, - con: 7, + canBuy: () => CURRENT_SEASON === 'fall', }, fall2019Healer: { - event: EVENTS.fall2019, - specialClass: 'healer', set: 'fall2019LichSet', - text: t('shieldSpecialFall2019HealerText'), - notes: t('shieldSpecialFall2019HealerNotes', { con: 9 }), - value: 70, - con: 9, + canBuy: () => CURRENT_SEASON === 'fall', }, ks2019: { text: t('shieldSpecialKS2019Text'), @@ -3857,88 +2305,77 @@ const shield = { 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, + canBuy: () => CURRENT_SEASON === 'winter', }, winter2020Warrior: { - event: EVENTS.winter2020, - specialClass: 'warrior', set: 'winter2020EvergreenSet', - text: t('shieldSpecialWinter2020WarriorText'), - notes: t('shieldSpecialWinter2020WarriorNotes', { con: 7 }), - value: 70, - con: 7, + canBuy: () => CURRENT_SEASON === 'winter', }, winter2020Healer: { - event: EVENTS.winter2020, - specialClass: 'healer', set: 'winter2020WinterSpiceSet', - text: t('shieldSpecialWinter2020HealerText'), - notes: t('shieldSpecialWinter2020HealerNotes', { con: 9 }), - value: 70, - con: 9, + canBuy: () => CURRENT_SEASON === 'winter', }, spring2020Rogue: { - event: EVENTS.spring2020, - specialClass: 'rogue', set: 'spring2020LapisLazuliRogueSet', - text: t('weaponSpecialSpring2020RogueText'), - notes: t('weaponSpecialSpring2020RogueNotes', { str: 8 }), - value: 80, - str: 8, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2020Warrior: { - event: EVENTS.spring2020, - specialClass: 'warrior', set: 'spring2020BeetleWarriorSet', - text: t('shieldSpecialSpring2020WarriorText'), - notes: t('shieldSpecialSpring2020WarriorNotes', { con: 7 }), - value: 70, - con: 7, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2020Healer: { - event: EVENTS.spring2020, - specialClass: 'healer', set: 'spring2020IrisHealerSet', - text: t('shieldSpecialSpring2020HealerText'), - notes: t('shieldSpecialSpring2020HealerNotes', { con: 9 }), - value: 70, - con: 9, + canBuy: () => CURRENT_SEASON === 'spring', }, summer2020Warrior: { - event: EVENTS.summer2020, - specialClass: 'warrior', set: 'summer2020RainbowTroutWarriorSet', - text: t('shieldSpecialSummer2020WarriorText'), - notes: t('shieldSpecialSummer2020WarriorNotes', { con: 7 }), - value: 70, - con: 7, + canBuy: () => CURRENT_SEASON === 'summer', }, summer2020Healer: { - event: EVENTS.summer2020, - specialClass: 'healer', set: 'summer2020SeaGlassHealerSet', - text: t('shieldSpecialSummer2020HealerText'), - notes: t('shieldSpecialSummer2020HealerNotes', { con: 9 }), - value: 70, - con: 9, + canBuy: () => CURRENT_SEASON === 'summer', }, summer2020Rogue: { - event: EVENTS.summer2020, - specialClass: 'rogue', set: 'summer2020CrocodileRogueSet', - text: t('weaponSpecialSummer2020RogueText'), - notes: t('weaponSpecialSummer2020RogueNotes', { str: 8 }), - value: 80, - str: 8, + canBuy: () => CURRENT_SEASON === 'summer', + }, + fall2020Rogue: { + set: 'fall2020TwoHeadedRogueSet', + text: t('shieldSpecialFall2020RogueText'), + notes: t('shieldSpecialFall2020RogueNotes', { str: 8 }), + }, + fall2020Warrior: { + set: 'fall2020WraithWarriorSet', + }, + fall2020Healer: { + set: 'fall2020DeathsHeadMothHealerSet', }, }; +const shieldStats = { + healer: { con: 9 }, + rogue: { str: 8 }, + warrior: { con: 7 }, +}; + +Object.keys(EVENTS).forEach(event => { + if (['winter', 'birthday', 'gaymerx'].indexOf(event) !== -1) return; + CLASSES.forEach(klass => { + if (klass === 'wizard') return; + const eventString = `${event}${upperFirst(klass)}`; + const textString = klass === 'rogue' ? `weaponSpecial${upperFirst(event)}Rogue` + : `shieldSpecial${upperFirst(event)}${upperFirst(klass)}`; + defaults(shield[eventString], { + event: EVENTS[event], + specialClass: klass, + text: t(`${textString}Text`), + notes: t(`${textString}Notes`, shieldStats[klass]), + value: klass === 'rogue' ? 80 : 70, + }, shieldStats[klass]); + }); +}); + const weapon = { 0: backerGear.weaponSpecial0, 1: contributorGear.weaponSpecial1, @@ -4083,905 +2520,347 @@ const weapon = { canBuy: () => CURRENT_SEASON === 'winter', }, springRogue: { - event: EVENTS.spring, - specialClass: 'rogue', set: 'stealthyKittySet', - text: t('weaponSpecialSpringRogueText'), - notes: t('weaponSpecialSpringRogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'spring', }, springWarrior: { - event: EVENTS.spring, - specialClass: 'warrior', set: 'mightyBunnySet', - text: t('weaponSpecialSpringWarriorText'), - notes: t('weaponSpecialSpringWarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'spring', }, springMage: { - event: EVENTS.spring, - specialClass: 'wizard', set: 'magicMouseSet', - twoHanded: true, - text: t('weaponSpecialSpringMageText'), - notes: t('weaponSpecialSpringMageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'spring', }, springHealer: { - event: EVENTS.spring, - specialClass: 'healer', set: 'lovingPupSet', - text: t('weaponSpecialSpringHealerText'), - notes: t('weaponSpecialSpringHealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'spring', }, summerRogue: { - event: EVENTS.summer, - specialClass: 'rogue', set: 'roguishPirateSet', - text: t('weaponSpecialSummerRogueText'), - notes: t('weaponSpecialSummerRogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'summer', }, summerWarrior: { - event: EVENTS.summer, - specialClass: 'warrior', set: 'daringSwashbucklerSet', - text: t('weaponSpecialSummerWarriorText'), - notes: t('weaponSpecialSummerWarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'summer', }, summerMage: { - event: EVENTS.summer, - specialClass: 'wizard', set: 'emeraldMermageSet', - twoHanded: true, - text: t('weaponSpecialSummerMageText'), - notes: t('weaponSpecialSummerMageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summerHealer: { - event: EVENTS.summer, - specialClass: 'healer', set: 'reefSeahealerSet', - text: t('weaponSpecialSummerHealerText'), - notes: t('weaponSpecialSummerHealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'summer', }, fallRogue: { - event: EVENTS.fall, - specialClass: 'rogue', set: 'vampireSmiterSet', - text: t('weaponSpecialFallRogueText'), - notes: t('weaponSpecialFallRogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'fall', }, fallWarrior: { - event: EVENTS.fall, - specialClass: 'warrior', set: 'monsterOfScienceSet', - text: t('weaponSpecialFallWarriorText'), - notes: t('weaponSpecialFallWarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'fall', }, fallMage: { - event: EVENTS.fall, - specialClass: 'wizard', set: 'witchyWizardSet', - twoHanded: true, - text: t('weaponSpecialFallMageText'), - notes: t('weaponSpecialFallMageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fallHealer: { - event: EVENTS.fall, - specialClass: 'healer', set: 'mummyMedicSet', - text: t('weaponSpecialFallHealerText'), - notes: t('weaponSpecialFallHealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'fall', }, winter2015Rogue: { - event: EVENTS.winter2015, - specialClass: 'rogue', set: 'icicleDrakeSet', - text: t('weaponSpecialWinter2015RogueText'), - notes: t('weaponSpecialWinter2015RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'winter', }, winter2015Warrior: { - event: EVENTS.winter2015, - specialClass: 'warrior', set: 'gingerbreadSet', - text: t('weaponSpecialWinter2015WarriorText'), - notes: t('weaponSpecialWinter2015WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'winter', }, winter2015Mage: { - event: EVENTS.winter2015, - specialClass: 'wizard', set: 'northMageSet', - twoHanded: true, - text: t('weaponSpecialWinter2015MageText'), - notes: t('weaponSpecialWinter2015MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2015Healer: { - event: EVENTS.winter2015, - specialClass: 'healer', set: 'soothingSkaterSet', - text: t('weaponSpecialWinter2015HealerText'), - notes: t('weaponSpecialWinter2015HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'winter', }, spring2015Rogue: { - event: EVENTS.spring2015, - specialClass: 'rogue', set: 'sneakySqueakerSet', - text: t('weaponSpecialSpring2015RogueText'), - notes: t('weaponSpecialSpring2015RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'spring', }, spring2015Warrior: { - event: EVENTS.spring2015, - specialClass: 'warrior', set: 'bewareDogSet', - text: t('weaponSpecialSpring2015WarriorText'), - notes: t('weaponSpecialSpring2015WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'spring', }, spring2015Mage: { - event: EVENTS.spring2015, - specialClass: 'wizard', set: 'magicianBunnySet', - twoHanded: true, - text: t('weaponSpecialSpring2015MageText'), - notes: t('weaponSpecialSpring2015MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2015Healer: { - event: EVENTS.spring2015, - specialClass: 'healer', set: 'comfortingKittySet', - text: t('weaponSpecialSpring2015HealerText'), - notes: t('weaponSpecialSpring2015HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'spring', }, summer2015Rogue: { - event: EVENTS.summer2015, - specialClass: 'rogue', set: 'reefRenegadeSet', - text: t('weaponSpecialSummer2015RogueText'), - notes: t('weaponSpecialSummer2015RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'summer', }, summer2015Warrior: { - event: EVENTS.summer2015, - specialClass: 'warrior', set: 'sunfishWarriorSet', - text: t('weaponSpecialSummer2015WarriorText'), - notes: t('weaponSpecialSummer2015WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'summer', }, summer2015Mage: { - event: EVENTS.summer2015, - specialClass: 'wizard', set: 'shipSoothsayerSet', - twoHanded: true, - text: t('weaponSpecialSummer2015MageText'), - notes: t('weaponSpecialSummer2015MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2015Healer: { - event: EVENTS.summer2015, - specialClass: 'healer', set: 'strappingSailorSet', - text: t('weaponSpecialSummer2015HealerText'), - notes: t('weaponSpecialSummer2015HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'summer', }, fall2015Rogue: { - event: EVENTS.fall2015, - specialClass: 'rogue', set: 'battleRogueSet', - text: t('weaponSpecialFall2015RogueText'), - notes: t('weaponSpecialFall2015RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'fall', }, fall2015Warrior: { - event: EVENTS.fall2015, - specialClass: 'warrior', set: 'scarecrowWarriorSet', - text: t('weaponSpecialFall2015WarriorText'), - notes: t('weaponSpecialFall2015WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'fall', }, fall2015Mage: { - event: EVENTS.fall2015, - specialClass: 'wizard', set: 'stitchWitchSet', - twoHanded: true, - text: t('weaponSpecialFall2015MageText'), - notes: t('weaponSpecialFall2015MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fall2015Healer: { - event: EVENTS.fall2015, - specialClass: 'healer', set: 'potionerSet', - text: t('weaponSpecialFall2015HealerText'), - notes: t('weaponSpecialFall2015HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'fall', }, winter2016Rogue: { - event: EVENTS.winter2016, - specialClass: 'rogue', set: 'cocoaSet', - text: t('weaponSpecialWinter2016RogueText'), - notes: t('weaponSpecialWinter2016RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'winter', }, winter2016Warrior: { - event: EVENTS.winter2016, - specialClass: 'warrior', set: 'snowDaySet', - text: t('weaponSpecialWinter2016WarriorText'), - notes: t('weaponSpecialWinter2016WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'winter', }, winter2016Mage: { - event: EVENTS.winter2016, - specialClass: 'wizard', set: 'snowboardingSet', - twoHanded: true, - text: t('weaponSpecialWinter2016MageText'), - notes: t('weaponSpecialWinter2016MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2016Healer: { - event: EVENTS.winter2016, - specialClass: 'healer', set: 'festiveFairySet', - text: t('weaponSpecialWinter2016HealerText'), - notes: t('weaponSpecialWinter2016HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'winter', }, spring2016Rogue: { - event: EVENTS.spring2016, - specialClass: 'rogue', set: 'cleverDogSet', - text: t('weaponSpecialSpring2016RogueText'), - notes: t('weaponSpecialSpring2016RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'spring', }, spring2016Warrior: { - event: EVENTS.spring2016, - specialClass: 'warrior', set: 'braveMouseSet', - text: t('weaponSpecialSpring2016WarriorText'), - notes: t('weaponSpecialSpring2016WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'spring', }, spring2016Mage: { - event: EVENTS.spring2016, - specialClass: 'wizard', set: 'grandMalkinSet', - twoHanded: true, - text: t('weaponSpecialSpring2016MageText'), - notes: t('weaponSpecialSpring2016MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2016Healer: { - event: EVENTS.spring2016, - specialClass: 'healer', set: 'springingBunnySet', - text: t('weaponSpecialSpring2016HealerText'), - notes: t('weaponSpecialSpring2016HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'spring', }, summer2016Rogue: { - event: EVENTS.summer2016, - specialClass: 'rogue', set: 'summer2016EelSet', - text: t('weaponSpecialSummer2016RogueText'), - notes: t('weaponSpecialSummer2016RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'summer', }, summer2016Warrior: { - event: EVENTS.summer2016, - specialClass: 'warrior', set: 'summer2016SharkWarriorSet', - text: t('weaponSpecialSummer2016WarriorText'), - notes: t('weaponSpecialSummer2016WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'summer', }, summer2016Mage: { - event: EVENTS.summer2016, - specialClass: 'wizard', set: 'summer2016DolphinMageSet', - twoHanded: true, - text: t('weaponSpecialSummer2016MageText'), - notes: t('weaponSpecialSummer2016MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2016Healer: { - event: EVENTS.summer2016, - specialClass: 'healer', set: 'summer2016SeahorseHealerSet', - text: t('weaponSpecialSummer2016HealerText'), - notes: t('weaponSpecialSummer2016HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'summer', }, fall2016Rogue: { - event: EVENTS.fall2016, - specialClass: 'rogue', set: 'fall2016BlackWidowSet', - text: t('weaponSpecialFall2016RogueText'), - notes: t('weaponSpecialFall2016RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'fall', }, fall2016Warrior: { - event: EVENTS.fall2016, - specialClass: 'warrior', set: 'fall2016SwampThingSet', - text: t('weaponSpecialFall2016WarriorText'), - notes: t('weaponSpecialFall2016WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'fall', }, fall2016Mage: { - event: EVENTS.fall2016, - specialClass: 'wizard', set: 'fall2016WickedSorcererSet', - twoHanded: true, - text: t('weaponSpecialFall2016MageText'), - notes: t('weaponSpecialFall2016MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fall2016Healer: { - event: EVENTS.fall2016, - specialClass: 'healer', set: 'fall2016GorgonHealerSet', - text: t('weaponSpecialFall2016HealerText'), - notes: t('weaponSpecialFall2016HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'fall', }, winter2017Rogue: { - event: EVENTS.winter2017, - specialClass: 'rogue', set: 'winter2017FrostyRogueSet', - text: t('weaponSpecialWinter2017RogueText'), - notes: t('weaponSpecialWinter2017RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'winter', }, winter2017Warrior: { - event: EVENTS.winter2017, - specialClass: 'warrior', set: 'winter2017IceHockeySet', - text: t('weaponSpecialWinter2017WarriorText'), - notes: t('weaponSpecialWinter2017WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'winter', }, winter2017Mage: { - event: EVENTS.winter2017, - specialClass: 'wizard', set: 'winter2017WinterWolfSet', - twoHanded: true, - text: t('weaponSpecialWinter2017MageText'), - notes: t('weaponSpecialWinter2017MageNotes', { int: 15, per: 7 }), - value: 170, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2017Healer: { - event: EVENTS.winter2017, - specialClass: 'healer', set: 'winter2017SugarPlumSet', - text: t('weaponSpecialWinter2017HealerText'), - notes: t('weaponSpecialWinter2017HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'winter', }, spring2017Rogue: { - event: EVENTS.spring2017, - specialClass: 'rogue', set: 'spring2017SneakyBunnySet', - text: t('weaponSpecialSpring2017RogueText'), - notes: t('weaponSpecialSpring2017RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'spring', }, spring2017Warrior: { - event: EVENTS.spring2017, - specialClass: 'warrior', set: 'spring2017FelineWarriorSet', - text: t('weaponSpecialSpring2017WarriorText'), - notes: t('weaponSpecialSpring2017WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'spring', }, spring2017Mage: { - event: EVENTS.spring2017, - specialClass: 'wizard', set: 'spring2017CanineConjurorSet', - twoHanded: true, - text: t('weaponSpecialSpring2017MageText'), - notes: t('weaponSpecialSpring2017MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2017Healer: { - event: EVENTS.spring2017, - specialClass: 'healer', set: 'spring2017FloralMouseSet', - text: t('weaponSpecialSpring2017HealerText'), - notes: t('weaponSpecialSpring2017HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'spring', }, summer2017Rogue: { - event: EVENTS.summer2017, - specialClass: 'rogue', set: 'summer2017SeaDragonSet', - text: t('weaponSpecialSummer2017RogueText'), - notes: t('weaponSpecialSummer2017RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'summer', }, summer2017Warrior: { - event: EVENTS.summer2017, - specialClass: 'warrior', set: 'summer2017SandcastleWarriorSet', - text: t('weaponSpecialSummer2017WarriorText'), - notes: t('weaponSpecialSummer2017WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'summer', }, summer2017Mage: { - event: EVENTS.summer2017, - specialClass: 'wizard', set: 'summer2017WhirlpoolMageSet', - twoHanded: true, - text: t('weaponSpecialSummer2017MageText'), - notes: t('weaponSpecialSummer2017MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2017Healer: { - event: EVENTS.summer2017, - specialClass: 'healer', set: 'summer2017SeashellSeahealerSet', - text: t('weaponSpecialSummer2017HealerText'), - notes: t('weaponSpecialSummer2017HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'summer', }, fall2017Rogue: { - event: EVENTS.fall2017, - specialClass: 'rogue', set: 'fall2017TrickOrTreatSet', - text: t('weaponSpecialFall2017RogueText'), - notes: t('weaponSpecialFall2017RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'fall', }, fall2017Warrior: { - event: EVENTS.fall2017, - specialClass: 'warrior', set: 'fall2017HabitoweenSet', - text: t('weaponSpecialFall2017WarriorText'), - notes: t('weaponSpecialFall2017WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'fall', }, fall2017Mage: { - event: EVENTS.fall2017, - specialClass: 'wizard', set: 'fall2017MasqueradeSet', - twoHanded: true, - text: t('weaponSpecialFall2017MageText'), - notes: t('weaponSpecialFall2017MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fall2017Healer: { - event: EVENTS.fall2017, - specialClass: 'healer', set: 'fall2017HauntedHouseSet', - text: t('weaponSpecialFall2017HealerText'), - notes: t('weaponSpecialFall2017HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'fall', }, winter2018Rogue: { - event: EVENTS.winter2018, - specialClass: 'rogue', set: 'winter2018ReindeerSet', - text: t('weaponSpecialWinter2018RogueText'), - notes: t('weaponSpecialWinter2018RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'winter', }, winter2018Warrior: { - event: EVENTS.winter2018, - specialClass: 'warrior', set: 'winter2018GiftWrappedSet', - text: t('weaponSpecialWinter2018WarriorText'), - notes: t('weaponSpecialWinter2018WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'winter', }, winter2018Mage: { - event: EVENTS.winter2018, - specialClass: 'wizard', set: 'winter2018ConfettiSet', - twoHanded: true, - text: t('weaponSpecialWinter2018MageText'), - notes: t('weaponSpecialWinter2018MageNotes', { int: 15, per: 7 }), - value: 170, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2018Healer: { - event: EVENTS.winter2018, - specialClass: 'healer', set: 'winter2018MistletoeSet', - text: t('weaponSpecialWinter2018HealerText'), - notes: t('weaponSpecialWinter2018HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'winter', }, spring2018Rogue: { - event: EVENTS.spring2018, - specialClass: 'rogue', set: 'spring2018DucklingRogueSet', - text: t('weaponSpecialSpring2018RogueText'), - notes: t('weaponSpecialSpring2018RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'spring', }, spring2018Warrior: { - event: EVENTS.spring2018, - specialClass: 'warrior', set: 'spring2018SunriseWarriorSet', - text: t('weaponSpecialSpring2018WarriorText'), - notes: t('weaponSpecialSpring2018WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'spring', }, spring2018Mage: { - event: EVENTS.spring2018, - specialClass: 'wizard', set: 'spring2018TulipMageSet', - twoHanded: true, - text: t('weaponSpecialSpring2018MageText'), - notes: t('weaponSpecialSpring2018MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2018Healer: { - event: EVENTS.spring2018, - specialClass: 'healer', set: 'spring2018GarnetHealerSet', - text: t('weaponSpecialSpring2018HealerText'), - notes: t('weaponSpecialSpring2018HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'spring', }, summer2018Rogue: { - event: EVENTS.summer2018, - specialClass: 'rogue', set: 'summer2018FisherRogueSet', - text: t('weaponSpecialSummer2018RogueText'), - notes: t('weaponSpecialSummer2018RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'summer', }, summer2018Warrior: { - event: EVENTS.summer2018, - specialClass: 'warrior', set: 'summer2018BettaFishWarriorSet', - text: t('weaponSpecialSummer2018WarriorText'), - notes: t('weaponSpecialSummer2018WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'summer', }, summer2018Mage: { - event: EVENTS.summer2018, - specialClass: 'wizard', set: 'summer2018LionfishMageSet', - twoHanded: true, - text: t('weaponSpecialSummer2018MageText'), - notes: t('weaponSpecialSummer2018MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'summer', }, summer2018Healer: { - event: EVENTS.summer2018, - specialClass: 'healer', set: 'summer2018MerfolkMonarchSet', - text: t('weaponSpecialSummer2018HealerText'), - notes: t('weaponSpecialSummer2018HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'summer', }, fall2018Rogue: { - event: EVENTS.fall2018, - specialClass: 'rogue', set: 'fall2018AlterEgoSet', - text: t('weaponSpecialFall2018RogueText'), - notes: t('weaponSpecialFall2018RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'fall', }, fall2018Warrior: { - event: EVENTS.fall2018, - specialClass: 'warrior', set: 'fall2018MinotaurWarriorSet', - text: t('weaponSpecialFall2018WarriorText'), - notes: t('weaponSpecialFall2018WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'fall', }, fall2018Mage: { - event: EVENTS.fall2018, - specialClass: 'wizard', set: 'fall2018CandymancerMageSet', - twoHanded: true, - text: t('weaponSpecialFall2018MageText'), - notes: t('weaponSpecialFall2018MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'fall', }, fall2018Healer: { - event: EVENTS.fall2018, - specialClass: 'healer', set: 'fall2018CarnivorousPlantSet', - text: t('weaponSpecialFall2018HealerText'), - notes: t('weaponSpecialFall2018HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'fall', }, winter2019Rogue: { - event: EVENTS.winter2019, - specialClass: 'rogue', set: 'winter2019PoinsettiaSet', - text: t('weaponSpecialWinter2019RogueText'), - notes: t('weaponSpecialWinter2019RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'winter', }, winter2019Warrior: { - event: EVENTS.winter2019, - specialClass: 'warrior', set: 'winter2019BlizzardSet', - text: t('weaponSpecialWinter2019WarriorText'), - notes: t('weaponSpecialWinter2019WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'winter', }, winter2019Mage: { - event: EVENTS.winter2019, - specialClass: 'wizard', set: 'winter2019PyrotechnicSet', - twoHanded: true, - text: t('weaponSpecialWinter2019MageText'), - notes: t('weaponSpecialWinter2019MageNotes', { int: 15, per: 7 }), - value: 170, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'winter', }, winter2019Healer: { - event: EVENTS.winter2019, - specialClass: 'healer', set: 'winter2019WinterStarSet', - text: t('weaponSpecialWinter2019HealerText'), - notes: t('weaponSpecialWinter2019HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'winter', }, spring2019Rogue: { - event: EVENTS.spring2019, - specialClass: 'rogue', set: 'spring2019CloudRogueSet', - text: t('weaponSpecialSpring2019RogueText'), - notes: t('weaponSpecialSpring2019RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Warrior: { - event: EVENTS.spring2019, - specialClass: 'warrior', set: 'spring2019OrchidWarriorSet', - text: t('weaponSpecialSpring2019WarriorText'), - notes: t('weaponSpecialSpring2019WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Mage: { - event: EVENTS.spring2019, - specialClass: 'wizard', set: 'spring2019AmberMageSet', - twoHanded: true, - text: t('weaponSpecialSpring2019MageText'), - notes: t('weaponSpecialSpring2019MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Healer: { - event: EVENTS.spring2019, - specialClass: 'healer', set: 'spring2019RobinHealerSet', - text: t('weaponSpecialSpring2019HealerText'), - notes: t('weaponSpecialSpring2019HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'spring', }, summer2019Rogue: { - event: EVENTS.summer2019, - specialClass: 'rogue', set: 'summer2019HammerheadRogueSet', - text: t('weaponSpecialSummer2019RogueText'), - notes: t('weaponSpecialSummer2019RogueNotes', { str: 8 }), - value: 80, - str: 8, canBuy: () => CURRENT_SEASON === 'summer', }, summer2019Warrior: { - event: EVENTS.summer2019, - specialClass: 'warrior', set: 'summer2019SeaTurtleWarriorSet', - text: t('weaponSpecialSummer2019WarriorText'), - notes: t('weaponSpecialSummer2019WarriorNotes', { str: 15 }), - value: 90, - str: 15, canBuy: () => CURRENT_SEASON === 'summer', }, summer2019Mage: { @@ -4992,55 +2871,28 @@ const weapon = { notes: t('weaponSpecialSummer2019MageNotes', { int: 15 }), value: 90, int: 15, + twoHanded: false, canBuy: () => CURRENT_SEASON === 'summer', }, summer2019Healer: { - event: EVENTS.summer2019, - specialClass: 'healer', set: 'summer2019ConchHealerSet', - text: t('weaponSpecialSummer2019HealerText'), - notes: t('weaponSpecialSummer2019HealerNotes', { int: 9 }), - value: 90, - int: 9, canBuy: () => CURRENT_SEASON === 'summer', }, fall2019Rogue: { - event: EVENTS.fall2019, - specialClass: 'rogue', set: 'fall2019OperaticSpecterSet', - text: t('weaponSpecialFall2019RogueText'), - notes: t('weaponSpecialFall2019RogueNotes', { str: 8 }), - value: 80, - str: 8, + canBuy: () => CURRENT_SEASON === 'fall', }, fall2019Warrior: { - event: EVENTS.fall2019, - specialClass: 'warrior', set: 'fall2019RavenSet', - text: t('weaponSpecialFall2019WarriorText'), - notes: t('weaponSpecialFall2019WarriorNotes', { str: 15 }), - value: 90, - str: 15, + canBuy: () => CURRENT_SEASON === 'fall', }, fall2019Mage: { - event: EVENTS.fall2019, - specialClass: 'wizard', set: 'fall2019CyclopsSet', - twoHanded: true, - text: t('weaponSpecialFall2019MageText'), - notes: t('weaponSpecialFall2019MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, + canBuy: () => CURRENT_SEASON === 'fall', }, fall2019Healer: { - event: EVENTS.fall2019, - specialClass: 'healer', set: 'fall2019LichSet', - text: t('weaponSpecialFall2019HealerText'), - notes: t('weaponSpecialFall2019HealerNotes', { int: 9 }), - value: 90, - int: 9, + canBuy: () => CURRENT_SEASON === 'fall', }, ks2019: { text: t('weaponSpecialKS2019Text'), @@ -5050,121 +2902,98 @@ const weapon = { 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, + canBuy: () => CURRENT_SEASON === 'winter', }, winter2020Warrior: { - event: EVENTS.winter2020, - specialClass: 'warrior', set: 'winter2020EvergreenSet', - text: t('weaponSpecialWinter2020WarriorText'), - notes: t('weaponSpecialWinter2020WarriorNotes', { str: 15 }), - value: 90, - str: 15, + canBuy: () => CURRENT_SEASON === 'winter', }, 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, + canBuy: () => CURRENT_SEASON === 'winter', }, winter2020Healer: { - event: EVENTS.winter2020, - specialClass: 'healer', set: 'winter2020WinterSpiceSet', - text: t('weaponSpecialWinter2020HealerText'), - notes: t('weaponSpecialWinter2020HealerNotes', { int: 9 }), - value: 90, - int: 9, + canBuy: () => CURRENT_SEASON === 'winter', }, spring2020Rogue: { - event: EVENTS.spring2020, - specialClass: 'rogue', set: 'spring2020LapisLazuliRogueSet', - text: t('weaponSpecialSpring2020RogueText'), - notes: t('weaponSpecialSpring2020RogueNotes', { str: 8 }), - value: 80, - str: 8, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2020Warrior: { - event: EVENTS.spring2020, - specialClass: 'warrior', set: 'spring2020BeetleWarriorSet', - text: t('weaponSpecialSpring2020WarriorText'), - notes: t('weaponSpecialSpring2020WarriorNotes', { str: 15 }), - value: 90, - str: 15, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2020Mage: { - event: EVENTS.spring2020, - specialClass: 'wizard', set: 'spring2020PuddleMageSet', - twoHanded: true, - text: t('weaponSpecialSpring2020MageText'), - notes: t('weaponSpecialSpring2020MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2020Healer: { - event: EVENTS.spring2020, - specialClass: 'healer', set: 'spring2020IrisHealerSet', - text: t('weaponSpecialSpring2020HealerText'), - notes: t('weaponSpecialSpring2020HealerNotes', { int: 9 }), - value: 90, - int: 9, + canBuy: () => CURRENT_SEASON === 'spring', }, summer2020Rogue: { - event: EVENTS.summer2020, - specialClass: 'rogue', set: 'summer2020CrocodileRogueSet', - text: t('weaponSpecialSummer2020RogueText'), - notes: t('weaponSpecialSummer2020RogueNotes', { str: 8 }), - value: 80, - str: 8, + canBuy: () => CURRENT_SEASON === 'summer', }, summer2020Warrior: { - event: EVENTS.summer2020, - specialClass: 'warrior', set: 'summer2020RainbowTroutWarriorSet', - text: t('weaponSpecialSummer2020WarriorText'), - notes: t('weaponSpecialSummer2020WarriorNotes', { str: 15 }), - value: 90, - str: 15, + canBuy: () => CURRENT_SEASON === 'summer', }, summer2020Mage: { - event: EVENTS.summer2020, - specialClass: 'wizard', set: 'summer2020OarfishMageSet', - text: t('weaponSpecialSummer2020MageText'), - notes: t('weaponSpecialSummer2020MageNotes', { int: 15, per: 7 }), - value: 160, - int: 15, - per: 7, - twoHanded: true, + canBuy: () => CURRENT_SEASON === 'summer', }, summer2020Healer: { - event: EVENTS.summer2020, - specialClass: 'healer', set: 'summer2020SeaGlassHealerSet', - text: t('weaponSpecialSummer2020HealerText'), - notes: t('weaponSpecialSummer2020HealerNotes', { int: 9 }), - value: 90, - int: 9, + canBuy: () => CURRENT_SEASON === 'summer', + }, + fall2020Rogue: { + set: 'fall2020TwoHeadedRogueSet', + }, + fall2020Warrior: { + set: 'fall2020WraithWarriorSet', + }, + fall2020Mage: { + set: 'fall2020ThirdEyeMageSet', + }, + fall2020Healer: { + set: 'fall2020DeathsHeadMothHealerSet', }, }; +const weaponStats = { + healer: { int: 9 }, + rogue: { str: 8 }, + warrior: { str: 15 }, + wizard: { int: 15, per: 7 }, +}; + +const weaponCosts = { + healer: 90, + rogue: 80, + warrior: 90, + wizard: 160, +}; + +Object.keys(EVENTS).forEach(event => { + if (['winter', 'birthday', 'gaymerx'].indexOf(event) !== -1) return; + CLASSES.forEach(klass => { + const classNameString = klass === 'wizard' ? 'mage' : klass; + const eventString = `${event}${upperFirst(classNameString)}`; + const textString = `weaponSpecial${upperFirst(event)}${upperFirst(classNameString)}`; + defaults(weapon[eventString], { + event: EVENTS[event], + specialClass: klass, + text: t(`${textString}Text`), + notes: t(`${textString}Notes`, weaponStats[klass]), + value: weaponCosts[klass], + twoHanded: klass === 'wizard', + }, weaponStats[klass]); + }); +}); + export { armor, back, diff --git a/website/common/script/content/shop-featuredItems.js b/website/common/script/content/shop-featuredItems.js index c4e832787d..8aefa99626 100644 --- a/website/common/script/content/shop-featuredItems.js +++ b/website/common/script/content/shop-featuredItems.js @@ -38,7 +38,7 @@ const featuredItems = { }, ]; }, - seasonal: 'summer2019Warrior', + seasonal: 'fall2019Mage', timeTravelers: [ // TODO ], diff --git a/website/common/script/libs/shops-seasonal.config.js b/website/common/script/libs/shops-seasonal.config.js index 5bc36d8eee..31b9771d89 100644 --- a/website/common/script/libs/shops-seasonal.config.js +++ b/website/common/script/libs/shops-seasonal.config.js @@ -1,16 +1,21 @@ -// import { SEASONAL_SETS } from '../content/constants'; +import { SEASONAL_SETS } from '../content/constants'; export default { - opened: false, + opened: true, - currentSeason: 'Closed', + currentSeason: 'Fall', - dateRange: { start: '2020-06-17', end: '2020-07-31' }, + dateRange: { start: '2020-09-22', end: '2020-10-31' }, availableSets: [ + ...SEASONAL_SETS.fall, ], pinnedSets: { + healer: 'fall2020DeathsHeadMothHealerSet', + rogue: 'fall2020TwoHeadedRogueSet', + warrior: 'fall2020WraithWarriorSet', + wizard: 'fall2020ThirdEyeMageSet', }, availableSpells: [ @@ -19,5 +24,5 @@ export default { availableQuests: [ ], - featuredSet: 'summer2019WaterLilyMageSet', + featuredSet: 'fall2020WraithWarriorSet', }; diff --git a/website/raw_sprites/spritesmith/gear/events/fall/broad_armor_special_fall2020Healer.png b/website/raw_sprites/spritesmith/gear/events/fall/broad_armor_special_fall2020Healer.png new file mode 100644 index 0000000000..0ba5f2ac3c Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/broad_armor_special_fall2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/broad_armor_special_fall2020Mage.png b/website/raw_sprites/spritesmith/gear/events/fall/broad_armor_special_fall2020Mage.png new file mode 100644 index 0000000000..2a90b1b9f3 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/broad_armor_special_fall2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/broad_armor_special_fall2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/fall/broad_armor_special_fall2020Rogue.png new file mode 100644 index 0000000000..2a71ca7bd6 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/broad_armor_special_fall2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/broad_armor_special_fall2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/fall/broad_armor_special_fall2020Warrior.png new file mode 100644 index 0000000000..1557cf1055 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/broad_armor_special_fall2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/head_special_fall2020Healer.png b/website/raw_sprites/spritesmith/gear/events/fall/head_special_fall2020Healer.png new file mode 100644 index 0000000000..67dd71a276 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/head_special_fall2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/head_special_fall2020Mage.png b/website/raw_sprites/spritesmith/gear/events/fall/head_special_fall2020Mage.png new file mode 100644 index 0000000000..103f635d68 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/head_special_fall2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/head_special_fall2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/fall/head_special_fall2020Rogue.png new file mode 100644 index 0000000000..536feb11b7 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/head_special_fall2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/head_special_fall2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/fall/head_special_fall2020Warrior.png new file mode 100644 index 0000000000..44fae3bf82 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/head_special_fall2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shield_special_fall2020Healer.png b/website/raw_sprites/spritesmith/gear/events/fall/shield_special_fall2020Healer.png new file mode 100644 index 0000000000..728c75347d Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shield_special_fall2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shield_special_fall2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/fall/shield_special_fall2020Rogue.png new file mode 100644 index 0000000000..298ef4c92d Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shield_special_fall2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shield_special_fall2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/fall/shield_special_fall2020Warrior.png new file mode 100644 index 0000000000..5b953cb7a4 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shield_special_fall2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_armor_special_fall2020Healer.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_armor_special_fall2020Healer.png new file mode 100644 index 0000000000..2457888a29 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_armor_special_fall2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_armor_special_fall2020Mage.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_armor_special_fall2020Mage.png new file mode 100644 index 0000000000..3936193825 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_armor_special_fall2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_armor_special_fall2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_armor_special_fall2020Rogue.png new file mode 100644 index 0000000000..1aa04edeca Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_armor_special_fall2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_armor_special_fall2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_armor_special_fall2020Warrior.png new file mode 100644 index 0000000000..c582a00f54 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_armor_special_fall2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_head_special_fall2020Healer.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_head_special_fall2020Healer.png new file mode 100644 index 0000000000..fb6a00c198 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_head_special_fall2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_head_special_fall2020Mage.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_head_special_fall2020Mage.png new file mode 100644 index 0000000000..b35aba3a0e Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_head_special_fall2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_head_special_fall2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_head_special_fall2020Rogue.png new file mode 100644 index 0000000000..f28f4a8efd Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_head_special_fall2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_head_special_fall2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_head_special_fall2020Warrior.png new file mode 100644 index 0000000000..35840da39a Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_head_special_fall2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_shield_special_fall2020Healer.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_shield_special_fall2020Healer.png new file mode 100644 index 0000000000..518a0dd6ff Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_shield_special_fall2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_shield_special_fall2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_shield_special_fall2020Rogue.png new file mode 100644 index 0000000000..94cdc7cea4 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_shield_special_fall2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_shield_special_fall2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_shield_special_fall2020Warrior.png new file mode 100644 index 0000000000..5e6e09d2c9 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_shield_special_fall2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_weapon_special_fall2020Healer.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_weapon_special_fall2020Healer.png new file mode 100644 index 0000000000..0257b9a090 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_weapon_special_fall2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_weapon_special_fall2020Mage.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_weapon_special_fall2020Mage.png new file mode 100644 index 0000000000..441d9a3040 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_weapon_special_fall2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_weapon_special_fall2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_weapon_special_fall2020Rogue.png new file mode 100644 index 0000000000..e5366ec305 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_weapon_special_fall2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_weapon_special_fall2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_weapon_special_fall2020Warrior.png new file mode 100644 index 0000000000..dbd1fbdd7d Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/shop/shop_weapon_special_fall2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/slim_armor_special_fall2020Healer.png b/website/raw_sprites/spritesmith/gear/events/fall/slim_armor_special_fall2020Healer.png new file mode 100644 index 0000000000..4d6d11ade1 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/slim_armor_special_fall2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/slim_armor_special_fall2020Mage.png b/website/raw_sprites/spritesmith/gear/events/fall/slim_armor_special_fall2020Mage.png new file mode 100644 index 0000000000..542a6daca7 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/slim_armor_special_fall2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/slim_armor_special_fall2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/fall/slim_armor_special_fall2020Rogue.png new file mode 100644 index 0000000000..c18efeac73 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/slim_armor_special_fall2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/slim_armor_special_fall2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/fall/slim_armor_special_fall2020Warrior.png new file mode 100644 index 0000000000..076ec110b8 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/slim_armor_special_fall2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/weapon_special_fall2020Healer.png b/website/raw_sprites/spritesmith/gear/events/fall/weapon_special_fall2020Healer.png new file mode 100644 index 0000000000..c082e6d0be Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/weapon_special_fall2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/weapon_special_fall2020Mage.png b/website/raw_sprites/spritesmith/gear/events/fall/weapon_special_fall2020Mage.png new file mode 100644 index 0000000000..15a16a6a47 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/weapon_special_fall2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/weapon_special_fall2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/fall/weapon_special_fall2020Rogue.png new file mode 100644 index 0000000000..7e8d97ab4b Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/weapon_special_fall2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/fall/weapon_special_fall2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/fall/weapon_special_fall2020Warrior.png new file mode 100644 index 0000000000..7ee8ac69da Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/fall/weapon_special_fall2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/npcs/npc_bailey.png b/website/raw_sprites/spritesmith/npcs/npc_bailey.png index d5940b986b..ea7bd68e40 100644 Binary files a/website/raw_sprites/spritesmith/npcs/npc_bailey.png and b/website/raw_sprites/spritesmith/npcs/npc_bailey.png differ diff --git a/website/raw_sprites/spritesmith/npcs/npc_justin.png b/website/raw_sprites/spritesmith/npcs/npc_justin.png index 08ba7025c2..d1973b48df 100644 Binary files a/website/raw_sprites/spritesmith/npcs/npc_justin.png and b/website/raw_sprites/spritesmith/npcs/npc_justin.png differ diff --git a/website/raw_sprites/spritesmith/npcs/npc_matt.png b/website/raw_sprites/spritesmith/npcs/npc_matt.png index 2531f1084b..1cd1006fd3 100644 Binary files a/website/raw_sprites/spritesmith/npcs/npc_matt.png and b/website/raw_sprites/spritesmith/npcs/npc_matt.png differ diff --git a/website/raw_sprites/spritesmith_large/promo_armoire_backgrounds_202007.png b/website/raw_sprites/spritesmith_large/promo_armoire_backgrounds_202007.png deleted file mode 100644 index f87cc1a875..0000000000 Binary files a/website/raw_sprites/spritesmith_large/promo_armoire_backgrounds_202007.png and /dev/null differ diff --git a/website/raw_sprites/spritesmith_large/promo_armoire_backgrounds_202008.png b/website/raw_sprites/spritesmith_large/promo_armoire_backgrounds_202008.png deleted file mode 100644 index 6f7aec4493..0000000000 Binary files a/website/raw_sprites/spritesmith_large/promo_armoire_backgrounds_202008.png and /dev/null differ diff --git a/website/raw_sprites/spritesmith_large/promo_fall_festival_2019.png b/website/raw_sprites/spritesmith_large/promo_fall_festival_2019.png new file mode 100644 index 0000000000..245e6ac2f0 Binary files /dev/null and b/website/raw_sprites/spritesmith_large/promo_fall_festival_2019.png differ diff --git a/website/raw_sprites/spritesmith_large/promo_fall_festival_2020.png b/website/raw_sprites/spritesmith_large/promo_fall_festival_2020.png new file mode 100644 index 0000000000..1eddf9220f Binary files /dev/null and b/website/raw_sprites/spritesmith_large/promo_fall_festival_2020.png differ diff --git a/website/raw_sprites/spritesmith_large/promo_golden_achievements.png b/website/raw_sprites/spritesmith_large/promo_golden_achievements.png deleted file mode 100644 index 68a91ddb5f..0000000000 Binary files a/website/raw_sprites/spritesmith_large/promo_golden_achievements.png and /dev/null differ diff --git a/website/raw_sprites/spritesmith_large/promo_mystery_202008.png b/website/raw_sprites/spritesmith_large/promo_mystery_202008.png deleted file mode 100644 index 540b720dfc..0000000000 Binary files a/website/raw_sprites/spritesmith_large/promo_mystery_202008.png and /dev/null differ diff --git a/website/raw_sprites/spritesmith_large/promo_time_travelers.png b/website/raw_sprites/spritesmith_large/promo_time_travelers.png deleted file mode 100644 index 3f68d33955..0000000000 Binary files a/website/raw_sprites/spritesmith_large/promo_time_travelers.png and /dev/null differ diff --git a/website/raw_sprites/spritesmith_large/scene_CernyPie.png b/website/raw_sprites/spritesmith_large/scene_CernyPie.png deleted file mode 100644 index 832bea7548..0000000000 Binary files a/website/raw_sprites/spritesmith_large/scene_CernyPie.png and /dev/null differ diff --git a/website/raw_sprites/spritesmith_large/scene_achievement.png b/website/raw_sprites/spritesmith_large/scene_achievement.png deleted file mode 100644 index 603731c141..0000000000 Binary files a/website/raw_sprites/spritesmith_large/scene_achievement.png and /dev/null differ diff --git a/website/raw_sprites/spritesmith_large/scene_public_space.png b/website/raw_sprites/spritesmith_large/scene_public_space.png deleted file mode 100644 index 13662443ff..0000000000 Binary files a/website/raw_sprites/spritesmith_large/scene_public_space.png and /dev/null differ diff --git a/website/raw_sprites/spritesmith_large/scene_reading.png b/website/raw_sprites/spritesmith_large/scene_reading.png deleted file mode 100644 index 5b708b2c8b..0000000000 Binary files a/website/raw_sprites/spritesmith_large/scene_reading.png and /dev/null differ diff --git a/website/raw_sprites/spritesmith_large/scene_rewards.png b/website/raw_sprites/spritesmith_large/scene_rewards.png deleted file mode 100644 index 61e6717fae..0000000000 Binary files a/website/raw_sprites/spritesmith_large/scene_rewards.png and /dev/null differ