diff --git a/website/client/src/assets/scss/variables.scss b/website/client/src/assets/scss/variables.scss index e73fd5ec8d..65f9ebf339 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, spring, summer // more to be added on future seasons -$npc_market_flavor: 'normal'; -$npc_quests_flavor: 'normal'; -$npc_seasonal_flavor: 'normal'; -$npc_timetravelers_flavor: 'normal'; -$npc_tavern_flavor: 'normal'; +$npc_market_flavor: 'spring'; +$npc_quests_flavor: 'spring'; +$npc_seasonal_flavor: 'spring'; +$npc_timetravelers_flavor: 'spring'; +$npc_tavern_flavor: 'spring'; $restingToolbarHeight: 40px; $menuToolbarHeight: 56px; diff --git a/website/client/src/components/achievements/chooseClass.vue b/website/client/src/components/achievements/chooseClass.vue index 913abb1b1d..f911d6bb3b 100644 --- a/website/client/src/components/achievements/chooseClass.vue +++ b/website/client/src/components/achievements/chooseClass.vue @@ -225,30 +225,30 @@ export default { classGear (heroClass) { if (heroClass === 'rogue') { return { - armor: 'armor_rogue_5', - head: 'head_rogue_5', - shield: 'shield_rogue_6', - weapon: 'weapon_rogue_6', + armor: 'armor_special_spring2020Rogue', + head: 'head_special_spring2020Rogue', + shield: 'shield_special_spring2020Rogue', + weapon: 'weapon_special_spring2020Rogue', }; } if (heroClass === 'wizard') { return { - armor: 'armor_wizard_5', - head: 'head_wizard_5', - weapon: 'weapon_wizard_6', + armor: 'armor_special_spring2020Mage', + head: 'head_special_spring2020Mage', + weapon: 'weapon_special_spring2020Mage', }; } if (heroClass === 'healer') { return { - armor: 'armor_healer_5', - head: 'head_healer_5', - shield: 'shield_healer_5', - weapon: 'weapon_healer_6', + armor: 'armor_special_spring2020Healer', + head: 'head_special_spring2020Healer', + shield: 'shield_special_spring2020Healer', + weapon: 'weapon_special_spring2020Healer', }; } return { - armor: 'armor_warrior_5', - head: 'head_warrior_5', - shield: 'shield_warrior_5', - weapon: 'weapon_warrior_6', + armor: 'armor_special_spring2020Warrior', + head: 'head_special_spring2020Warrior', + shield: 'shield_special_spring2020Warrior', + weapon: 'weapon_special_spring2020Warrior', }; }, selectionBox (selectedClass, heroClass) { diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index 95f4af4bae..0222045e7f 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -350,6 +350,15 @@ "weaponSpecialWinter2020HealerText": "Clove Scepter", "weaponSpecialWinter2020HealerNotes": "Wave it about, and its aroma will summon your friends and helpers to begin cooking and baking! Increases Intelligence by <%= int %>. Limited Edition 2019-2020 Winter Gear.", + "weaponSpecialSpring2020RogueText": "Lazurite Blade", + "weaponSpecialSpring2020RogueNotes": "You'll strike so fast it'll look even MORE blue! Increases Strength by <%= str %>. Limited Edition 2020 Spring Gear.", + "weaponSpecialSpring2020WarriorText": "Sharpened Wing", + "weaponSpecialSpring2020WarriorNotes": "Fight or flight, this wing will serve you well! Increases Strength by <%= str %>. Limited Edition 2020 Spring Gear.", + "weaponSpecialSpring2020MageText": "Raindrops", + "weaponSpecialSpring2020MageNotes": "They keep falling on your head! But you'll never stop them by complaining. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2020 Spring Gear.", + "weaponSpecialSpring2020HealerText": "Sword-Lily Staff", + "weaponSpecialSpring2020HealerNotes": "An iris is beautiful, but the leaves are like swords... don't be deceived by the flowers, this staff is tough as steel! Increases Intelligence by <%= int %>. Limited Edition 2020 Spring 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", @@ -809,6 +818,15 @@ "armorSpecialWinter2020HealerText": "Orange Peel Gown", "armorSpecialWinter2020HealerNotes": "An opulent gown for those with festive zest! Increases Constitution by <%= con %>. Limited Edition 2019-2020 Winter Gear.", + "armorSpecialSpring2020RogueText": "Ultramarine Armor", + "armorSpecialSpring2020RogueNotes": "The color of twilight, of a multitude of precious stones, of the deepest sea! Increases Perception by <%= per %>. Limited Edition 2020 Spring Gear.", + "armorSpecialSpring2020WarriorText": "Exoskeleton Armor", + "armorSpecialSpring2020WarriorNotes": "This rigid carapace can keep you safe from even the most crushing attacks. Increases Constitution by <%= con %>. Limited Edition 2020 Spring Gear.", + "armorSpecialSpring2020MageText": "Whirlpuddle Gown", + "armorSpecialSpring2020MageNotes": "If you can't resist stomping through the leavings of rainstorms, this armor is for you! Turn a childish impulse into a display of mystic artistry. Increases Intelligence by <%= int %>. Limited Edition 2020 Spring Gear.", + "armorSpecialSpring2020HealerText": "Protective Petals", + "armorSpecialSpring2020HealerNotes": "Wrap yourself in soft iris leaves and petals to fool enemies into underestimating your healing power. Increases Constitution by <%= con %>. Limited Edition 2020 Spring 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", @@ -1361,6 +1379,15 @@ "headSpecialWinter2020HealerText": "Star Anise Emblem", "headSpecialWinter2020HealerNotes": "Please remove it from your head before attempting to brew chai or coffee with it. Increases Intelligence by <%= int %>. Limited Edition 2019-2020 Winter Gear.", + "headSpecialSpring2020RogueText": "Lapis Kabuto", + "headSpecialSpring2020RogueNotes": "So vibrant and valuable, you'll be tempted to steal it off your own head. Increases Perception by <%= per %>. Limited Edition 2020 Spring Gear.", + "headSpecialSpring2020WarriorText": "Beetle Helm", + "headSpecialSpring2020WarriorNotes": "Your enemies' blows will glance off this beetle-inspired helm! Increases Strength by <%= str %>. Limited Edition 2020 Spring Gear.", + "headSpecialSpring2020MageText": "Drip Top Cap", + "headSpecialSpring2020MageNotes": "Is the sky clear? Humidity low? Don't worry, we've got you. Moisten your magic without dampening your spirits! Increases Perception by <%= per %>. Limited Edition 2020 Spring Gear.", + "headSpecialSpring2020HealerText": "Iris Fascinator", + "headSpecialSpring2020HealerNotes": "Beguile your foes with this headpiece made of flowers! Increases Intelligence by <%= int %>. Limited Edition 2020 Spring 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.", @@ -1814,6 +1841,11 @@ "shieldSpecialWinter2020HealerText": "Giant Cinnamon Stick", "shieldSpecialWinter2020HealerNotes": "Do you feel you are too good for this world, too pure? Only this beauty of a spice will do. Increases Constitution by <%= con %>. Limited Edition 2019-2020 Winter Gear.", + "shieldSpecialSpring2020WarriorText": "Iridescent Shield", + "shieldSpecialSpring2020WarriorNotes": "Don't let the delicate colors fool you. This shield has got you covered! Increases Constitution by <%= con %>. Limited Edition 2020 Spring Gear.", + "shieldSpecialSpring2020HealerText": "Perfumed Shield", + "shieldSpecialSpring2020HealerNotes": "Ward off those musty old To-Dos with this sweet-smelling shield. Increases Constitution by <%= con %>. Limited Edition 2020 Spring 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 9dd04d78a8..9306836a50 100644 --- a/website/common/locales/en/limited.json +++ b/website/common/locales/en/limited.json @@ -151,6 +151,10 @@ "winter2020CarolOfTheMageSet": "Carol of the Mage (Mage)", "winter2020WinterSpiceSet": "Winter Spice (Healer)", "winter2020LanternSet": "Lantern (Rogue)", + "spring2020BeetleWarriorSet": "Beetle (Warrior)", + "spring2020PuddleMageSet": "Puddle (Mage)", + "spring2020IrisHealerSet": "Iris (Healer)", + "spring2020LapisLazuliRogueSet": "Lapis Lazuli (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 6e09edc068..215a5a1086 100644 --- a/website/common/script/content/constants.js +++ b/website/common/script/content/constants.js @@ -39,6 +39,7 @@ export const EVENTS = { summer2019: { start: '2019-06-18', end: '2019-08-02' }, fall2019: { start: '2019-09-24', end: '2019-11-02' }, winter2020: { start: '2019-12-19', end: '2020-02-02' }, + spring2020: { start: '2019-03-17', end: '2020-05-02' }, }; export const SEASONAL_SETS = { @@ -121,6 +122,13 @@ export const SEASONAL_SETS = { 'spring2019OrchidWarriorSet', 'spring2019CloudRogueSet', 'spring2019RobinHealerSet', + + // spring 2020 + + 'spring2020BeetleWarriorSet', + 'spring2020IrisHealerSet', + 'spring2020LapisLazuliRogueSet', + 'spring2020PuddleMageSet', ], summer: [ // summer 2014 diff --git a/website/common/script/content/gear/sets/special/index.js b/website/common/script/content/gear/sets/special/index.js index 7de704dc22..300dd77c5b 100644 --- a/website/common/script/content/gear/sets/special/index.js +++ b/website/common/script/content/gear/sets/special/index.js @@ -1,3 +1,4 @@ +import moment from 'moment'; import { EVENTS, } from '../../../constants'; @@ -8,7 +9,7 @@ import * as takeThisGear from './special-takeThis'; import * as wonderconGear from './special-wondercon'; import t from '../../../translation'; -const CURRENT_SEASON = 'winter'; +const CURRENT_SEASON = moment().isBetween('2020-03-17', '2020-05-02') ? 'spring' : '_NONE_'; const armor = { 0: backerGear.armorSpecial0, @@ -1002,6 +1003,7 @@ const armor = { notes: t('armorSpecialSpring2019RogueNotes', { per: 15 }), value: 90, per: 15, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Warrior: { event: EVENTS.spring2019, @@ -1011,6 +1013,7 @@ const armor = { notes: t('armorSpecialSpring2019WarriorNotes', { con: 9 }), value: 90, con: 9, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Mage: { event: EVENTS.spring2019, @@ -1020,6 +1023,7 @@ const armor = { notes: t('armorSpecialSpring2019MageNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Healer: { event: EVENTS.spring2019, @@ -1029,6 +1033,7 @@ const armor = { notes: t('armorSpecialSpring2019HealerNotes', { con: 15 }), value: 90, con: 15, + canBuy: () => CURRENT_SEASON === 'spring', }, summer2019Rogue: { event: EVENTS.summer2019, @@ -1151,6 +1156,42 @@ const armor = { value: 0, 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, + }, + spring2020Warrior: { + event: EVENTS.spring2020, + specialClass: 'warrior', + set: 'spring2020BeetleWarriorSet', + text: t('armorSpecialSpring2020WarriorText'), + notes: t('armorSpecialSpring2020WarriorNotes', { con: 9 }), + value: 90, + con: 9, + }, + spring2020Mage: { + event: EVENTS.spring2020, + specialClass: 'wizard', + set: 'spring2020PuddleMageSet', + text: t('armorSpecialSpring2020MageText'), + notes: t('armorSpecialSpring2020MageNotes', { int: 9 }), + value: 90, + int: 9, + }, + spring2020Healer: { + event: EVENTS.spring2020, + specialClass: 'healer', + set: 'spring2020IrisHealerSet', + text: t('armorSpecialSpring2020HealerText'), + notes: t('armorSpecialSpring2020HealerNotes', { con: 15 }), + value: 90, + con: 15, + }, }; const back = { @@ -2477,6 +2518,7 @@ const head = { notes: t('headSpecialSpring2019RogueNotes', { per: 9 }), value: 60, per: 9, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Warrior: { event: EVENTS.spring2019, @@ -2486,6 +2528,7 @@ const head = { notes: t('headSpecialSpring2019WarriorNotes', { str: 9 }), value: 60, str: 9, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Mage: { event: EVENTS.spring2019, @@ -2495,6 +2538,7 @@ const head = { notes: t('headSpecialSpring2019MageNotes', { per: 7 }), value: 60, per: 7, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Healer: { event: EVENTS.spring2019, @@ -2504,6 +2548,7 @@ const head = { notes: t('headSpecialSpring2019HealerNotes', { int: 7 }), value: 60, int: 7, + canBuy: () => CURRENT_SEASON === 'spring', }, summer2019Rogue: { event: EVENTS.summer2019, @@ -2626,6 +2671,42 @@ const head = { value: 0, 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, + }, + spring2020Warrior: { + event: EVENTS.spring2020, + specialClass: 'warrior', + set: 'spring2020BeetleWarriorSet', + text: t('headSpecialSpring2020WarriorText'), + notes: t('headSpecialSpring2020WarriorNotes', { str: 9 }), + value: 60, + str: 9, + }, + spring2020Mage: { + event: EVENTS.spring2020, + specialClass: 'wizard', + set: 'spring2020PuddleMageSet', + text: t('headSpecialSpring2020MageText'), + notes: t('headSpecialSpring2020MageNotes', { per: 7 }), + value: 60, + per: 7, + }, + spring2020Healer: { + event: EVENTS.spring2020, + specialClass: 'healer', + set: 'spring2020IrisHealerSet', + text: t('headSpecialSpring2020HealerText'), + notes: t('headSpecialSpring2020HealerNotes', { int: 7 }), + value: 60, + int: 7, + }, }; const headAccessory = { @@ -3593,6 +3674,7 @@ const shield = { notes: t('weaponSpecialSpring2019RogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Warrior: { event: EVENTS.spring2019, @@ -3602,6 +3684,7 @@ const shield = { notes: t('shieldSpecialSpring2019WarriorNotes', { con: 7 }), value: 70, con: 7, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Healer: { event: EVENTS.spring2019, @@ -3611,6 +3694,7 @@ const shield = { notes: t('shieldSpecialSpring2019HealerNotes', { con: 9 }), value: 70, con: 9, + canBuy: () => CURRENT_SEASON === 'spring', }, summer2019Rogue: { event: EVENTS.summer2019, @@ -3709,6 +3793,33 @@ const shield = { value: 70, con: 9, }, + spring2020Rogue: { + event: EVENTS.spring2020, + specialClass: 'rogue', + set: 'spring2020LapisLazuliRogueSet', + text: t('weaponSpecialSpring2020RogueText'), + notes: t('weaponSpecialSpring2020RogueNotes', { str: 8 }), + value: 80, + str: 8, + }, + spring2020Warrior: { + event: EVENTS.spring2020, + specialClass: 'warrior', + set: 'spring2020BeetleWarriorSet', + text: t('shieldSpecialSpring2020WarriorText'), + notes: t('shieldSpecialSpring2020WarriorNotes', { con: 7 }), + value: 70, + con: 7, + }, + spring2020Healer: { + event: EVENTS.spring2020, + specialClass: 'healer', + set: 'spring2020IrisHealerSet', + text: t('shieldSpecialSpring2020HealerText'), + notes: t('shieldSpecialSpring2020HealerNotes', { con: 9 }), + value: 70, + con: 9, + }, }; const weapon = { @@ -4702,6 +4813,7 @@ const weapon = { notes: t('weaponSpecialSpring2019RogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Warrior: { event: EVENTS.spring2019, @@ -4711,6 +4823,7 @@ const weapon = { notes: t('weaponSpecialSpring2019WarriorNotes', { str: 15 }), value: 90, str: 15, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Mage: { event: EVENTS.spring2019, @@ -4722,6 +4835,7 @@ const weapon = { value: 160, int: 15, per: 7, + canBuy: () => CURRENT_SEASON === 'spring', }, spring2019Healer: { event: EVENTS.spring2019, @@ -4731,6 +4845,7 @@ const weapon = { notes: t('weaponSpecialSpring2019HealerNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => CURRENT_SEASON === 'spring', }, summer2019Rogue: { event: EVENTS.summer2019, @@ -4851,6 +4966,44 @@ const weapon = { value: 90, int: 9, }, + spring2020Rogue: { + event: EVENTS.spring2020, + specialClass: 'rogue', + set: 'spring2020LapisLazuliRogueSet', + text: t('weaponSpecialSpring2020RogueText'), + notes: t('weaponSpecialSpring2020RogueNotes', { str: 8 }), + value: 80, + str: 8, + }, + spring2020Warrior: { + event: EVENTS.spring2020, + specialClass: 'warrior', + set: 'spring2020BeetleWarriorSet', + text: t('weaponSpecialSpring2020WarriorText'), + notes: t('weaponSpecialSpring2020WarriorNotes', { str: 15 }), + value: 90, + str: 15, + }, + 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, + }, + spring2020Healer: { + event: EVENTS.spring2020, + specialClass: 'healer', + set: 'spring2020IrisHealerSet', + text: t('weaponSpecialSpring2020HealerText'), + notes: t('weaponSpecialSpring2020HealerNotes', { int: 9 }), + value: 90, + int: 9, + }, }; export { diff --git a/website/common/script/content/shop-featuredItems.js b/website/common/script/content/shop-featuredItems.js index bceb079798..564365cea6 100644 --- a/website/common/script/content/shop-featuredItems.js +++ b/website/common/script/content/shop-featuredItems.js @@ -56,7 +56,7 @@ const featuredItems = { }, ]; }, - seasonal: 'winter2019Warrior', + seasonal: 'spring2019Rogue', timeTravelers: [ // TODO ], diff --git a/website/common/script/libs/shops-seasonal.config.js b/website/common/script/libs/shops-seasonal.config.js index 19df0df620..6ea724c396 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: 'Spring', - dateRange: { start: '2019-09-24', end: '2019-10-31' }, + dateRange: { start: '2020-03-19', end: '2020-04-30' }, availableSets: [ + ...SEASONAL_SETS.spring, ], pinnedSets: { + healer: 'spring2020IrisHealerSet', + rogue: 'spring2020LapisLazuliRogueSet', + warrior: 'spring2020BeetleWarriorSet', + wizard: 'spring2020PuddleMageSet', }, availableSpells: [ @@ -19,5 +24,5 @@ export default { availableQuests: [ ], - featuredSet: 'fall2018AlterEgoSet', + featuredSet: 'spring2019OrchidWarriorSet', }; diff --git a/website/raw_sprites/spritesmith/gear/events/spring/broad_armor_special_spring2020Healer.png b/website/raw_sprites/spritesmith/gear/events/spring/broad_armor_special_spring2020Healer.png new file mode 100644 index 0000000000..868faa1e76 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/broad_armor_special_spring2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/broad_armor_special_spring2020Mage.png b/website/raw_sprites/spritesmith/gear/events/spring/broad_armor_special_spring2020Mage.png new file mode 100644 index 0000000000..24d80bffb7 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/broad_armor_special_spring2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/broad_armor_special_spring2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/spring/broad_armor_special_spring2020Rogue.png new file mode 100644 index 0000000000..80d21516a2 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/broad_armor_special_spring2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/broad_armor_special_spring2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/spring/broad_armor_special_spring2020Warrior.png new file mode 100644 index 0000000000..03fa83c63f Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/broad_armor_special_spring2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/head_special_spring2020Healer.png b/website/raw_sprites/spritesmith/gear/events/spring/head_special_spring2020Healer.png new file mode 100644 index 0000000000..85931a6665 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/head_special_spring2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/head_special_spring2020Mage.png b/website/raw_sprites/spritesmith/gear/events/spring/head_special_spring2020Mage.png new file mode 100644 index 0000000000..9d2ea73a79 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/head_special_spring2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/head_special_spring2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/spring/head_special_spring2020Rogue.png new file mode 100644 index 0000000000..6f53e3b97e Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/head_special_spring2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/head_special_spring2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/spring/head_special_spring2020Warrior.png new file mode 100644 index 0000000000..153b72f89b Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/head_special_spring2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shield_special_spring2020Healer.png b/website/raw_sprites/spritesmith/gear/events/spring/shield_special_spring2020Healer.png new file mode 100644 index 0000000000..bef877aa9a Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shield_special_spring2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shield_special_spring2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/spring/shield_special_spring2020Rogue.png new file mode 100644 index 0000000000..6fcf92630c Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shield_special_spring2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shield_special_spring2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/spring/shield_special_spring2020Warrior.png new file mode 100644 index 0000000000..afbd4d2d81 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shield_special_spring2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2020Healer.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2020Healer.png new file mode 100644 index 0000000000..aa906f099c Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2020Mage.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2020Mage.png new file mode 100644 index 0000000000..30595cf252 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2020Rogue.png new file mode 100644 index 0000000000..0989e3f8b3 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2020Warrior.png new file mode 100644 index 0000000000..f700624357 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2020Healer.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2020Healer.png new file mode 100644 index 0000000000..5d2c748174 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2020Mage.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2020Mage.png new file mode 100644 index 0000000000..f086dff422 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2020Rogue.png new file mode 100644 index 0000000000..291cf2fe48 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2020Warrior.png new file mode 100644 index 0000000000..cc0f6606e6 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2020Healer.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2020Healer.png new file mode 100644 index 0000000000..0b4d7f781d Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2020Rogue.png new file mode 100644 index 0000000000..9f5f6ccb7c Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2020Warrior.png new file mode 100644 index 0000000000..e74d60cd56 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2020Healer.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2020Healer.png new file mode 100644 index 0000000000..135f6b3e33 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2020Mage.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2020Mage.png new file mode 100644 index 0000000000..0b9ed1117d Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2020Rogue.png new file mode 100644 index 0000000000..28324ee462 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2020Warrior.png new file mode 100644 index 0000000000..62622dcdf5 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/slim_armor_special_spring2020Healer.png b/website/raw_sprites/spritesmith/gear/events/spring/slim_armor_special_spring2020Healer.png new file mode 100644 index 0000000000..5f06d43054 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/slim_armor_special_spring2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/slim_armor_special_spring2020Mage.png b/website/raw_sprites/spritesmith/gear/events/spring/slim_armor_special_spring2020Mage.png new file mode 100644 index 0000000000..1b0d841e28 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/slim_armor_special_spring2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/slim_armor_special_spring2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/spring/slim_armor_special_spring2020Rogue.png new file mode 100644 index 0000000000..66894e17ae Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/slim_armor_special_spring2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/slim_armor_special_spring2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/spring/slim_armor_special_spring2020Warrior.png new file mode 100644 index 0000000000..e63bedddc6 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/slim_armor_special_spring2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/weapon_special_spring2020Healer.png b/website/raw_sprites/spritesmith/gear/events/spring/weapon_special_spring2020Healer.png new file mode 100644 index 0000000000..c0e5fe814b Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/weapon_special_spring2020Healer.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/weapon_special_spring2020Mage.png b/website/raw_sprites/spritesmith/gear/events/spring/weapon_special_spring2020Mage.png new file mode 100644 index 0000000000..bffdd9f431 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/weapon_special_spring2020Mage.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/weapon_special_spring2020Rogue.png b/website/raw_sprites/spritesmith/gear/events/spring/weapon_special_spring2020Rogue.png new file mode 100644 index 0000000000..61bbe633d0 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/weapon_special_spring2020Rogue.png differ diff --git a/website/raw_sprites/spritesmith/gear/events/spring/weapon_special_spring2020Warrior.png b/website/raw_sprites/spritesmith/gear/events/spring/weapon_special_spring2020Warrior.png new file mode 100644 index 0000000000..1eb48bee39 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/events/spring/weapon_special_spring2020Warrior.png differ diff --git a/website/raw_sprites/spritesmith/npcs/npc_bailey.png b/website/raw_sprites/spritesmith/npcs/npc_bailey.png index 4957f1a3f9..0fe6763311 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..9365bc12c9 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..e129d6e43e 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_seasonal_shop_spring.png b/website/raw_sprites/spritesmith_large/promo_seasonal_shop_spring.png new file mode 100644 index 0000000000..e1f811893e Binary files /dev/null and b/website/raw_sprites/spritesmith_large/promo_seasonal_shop_spring.png differ diff --git a/website/raw_sprites/spritesmith_large/promo_spring_2019.png b/website/raw_sprites/spritesmith_large/promo_spring_2019.png new file mode 100644 index 0000000000..18678fb1e2 Binary files /dev/null and b/website/raw_sprites/spritesmith_large/promo_spring_2019.png differ diff --git a/website/raw_sprites/spritesmith_large/promo_spring_2020.png b/website/raw_sprites/spritesmith_large/promo_spring_2020.png new file mode 100644 index 0000000000..c7195fec9c Binary files /dev/null and b/website/raw_sprites/spritesmith_large/promo_spring_2020.png differ