diff --git a/website/assets/img/project_files/npcs/summer/npc_timetravelers_active.png b/website/assets/img/project_files/npcs/summer/npc_timetravelers_active.png new file mode 100644 index 0000000000..e14e0d32ba Binary files /dev/null and b/website/assets/img/project_files/npcs/summer/npc_timetravelers_active.png differ diff --git a/website/assets/sprites/css/index.css b/website/assets/sprites/css/index.css index 85e142f21f..03c9d1de1d 100644 --- a/website/assets/sprites/css/index.css +++ b/website/assets/sprites/css/index.css @@ -1,9 +1,9 @@ /* Comment out for holiday events */ -.npc_ian { +/* .npc_ian { background: url("/npc_ian.gif") no-repeat; width: 78px; height: 135px; -} +} */ .quest_burnout { background: url("/quest_burnout.gif") no-repeat; diff --git a/website/assets/sprites/spritesmith/gear/events/summer/broad_armor_special_summer2017Healer.png b/website/assets/sprites/spritesmith/gear/events/summer/broad_armor_special_summer2017Healer.png new file mode 100644 index 0000000000..928d0e4179 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/broad_armor_special_summer2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/broad_armor_special_summer2017Mage.png b/website/assets/sprites/spritesmith/gear/events/summer/broad_armor_special_summer2017Mage.png new file mode 100644 index 0000000000..a1c7781225 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/broad_armor_special_summer2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/broad_armor_special_summer2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/summer/broad_armor_special_summer2017Rogue.png new file mode 100644 index 0000000000..dd1a36e8e2 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/broad_armor_special_summer2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/broad_armor_special_summer2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/summer/broad_armor_special_summer2017Warrior.png new file mode 100644 index 0000000000..8288ed499d Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/broad_armor_special_summer2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/head_special_summer2017Healer.png b/website/assets/sprites/spritesmith/gear/events/summer/head_special_summer2017Healer.png new file mode 100644 index 0000000000..7573713518 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/head_special_summer2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/head_special_summer2017Mage.png b/website/assets/sprites/spritesmith/gear/events/summer/head_special_summer2017Mage.png new file mode 100644 index 0000000000..087edf89de Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/head_special_summer2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/head_special_summer2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/summer/head_special_summer2017Rogue.png new file mode 100644 index 0000000000..37f59d34e4 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/head_special_summer2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/head_special_summer2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/summer/head_special_summer2017Warrior.png new file mode 100644 index 0000000000..84719ec13f Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/head_special_summer2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shield_special_summer2017Healer.png b/website/assets/sprites/spritesmith/gear/events/summer/shield_special_summer2017Healer.png new file mode 100644 index 0000000000..6a25f4f42f Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shield_special_summer2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shield_special_summer2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/summer/shield_special_summer2017Rogue.png new file mode 100644 index 0000000000..fb16b90abe Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shield_special_summer2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shield_special_summer2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/summer/shield_special_summer2017Warrior.png new file mode 100644 index 0000000000..62d87c09e2 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shield_special_summer2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_armor_special_summer2017Healer.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_armor_special_summer2017Healer.png new file mode 100644 index 0000000000..37f9b454b3 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_armor_special_summer2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_armor_special_summer2017Mage.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_armor_special_summer2017Mage.png new file mode 100644 index 0000000000..8c2e6b8167 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_armor_special_summer2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_armor_special_summer2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_armor_special_summer2017Rogue.png new file mode 100644 index 0000000000..a85c8969c7 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_armor_special_summer2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_armor_special_summer2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_armor_special_summer2017Warrior.png new file mode 100644 index 0000000000..fae83dc90d Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_armor_special_summer2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_head_special_summer2017Healer.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_head_special_summer2017Healer.png new file mode 100644 index 0000000000..545317e412 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_head_special_summer2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_head_special_summer2017Mage.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_head_special_summer2017Mage.png new file mode 100644 index 0000000000..b4370ab7d1 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_head_special_summer2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_head_special_summer2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_head_special_summer2017Rogue.png new file mode 100644 index 0000000000..1b721c9491 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_head_special_summer2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_head_special_summer2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_head_special_summer2017Warrior.png new file mode 100644 index 0000000000..9d84b08636 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_head_special_summer2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_shield_special_summer2017Healer.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_shield_special_summer2017Healer.png new file mode 100644 index 0000000000..02cc838339 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_shield_special_summer2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_shield_special_summer2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_shield_special_summer2017Rogue.png new file mode 100644 index 0000000000..dce06bb1bd Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_shield_special_summer2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_shield_special_summer2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_shield_special_summer2017Warrior.png new file mode 100644 index 0000000000..86fcba3156 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_shield_special_summer2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_weapon_special_summer2017Healer.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_weapon_special_summer2017Healer.png new file mode 100644 index 0000000000..929f4cdb6a Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_weapon_special_summer2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_weapon_special_summer2017Mage.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_weapon_special_summer2017Mage.png new file mode 100644 index 0000000000..837776ebbe Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_weapon_special_summer2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_weapon_special_summer2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_weapon_special_summer2017Rogue.png new file mode 100644 index 0000000000..654617f719 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_weapon_special_summer2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_weapon_special_summer2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_weapon_special_summer2017Warrior.png new file mode 100644 index 0000000000..e616785925 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/shop/shop_weapon_special_summer2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/slim_armor_special_summer2017Healer.png b/website/assets/sprites/spritesmith/gear/events/summer/slim_armor_special_summer2017Healer.png new file mode 100644 index 0000000000..ded9bfaffd Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/slim_armor_special_summer2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/slim_armor_special_summer2017Mage.png b/website/assets/sprites/spritesmith/gear/events/summer/slim_armor_special_summer2017Mage.png new file mode 100644 index 0000000000..6f5a67f8ac Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/slim_armor_special_summer2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/slim_armor_special_summer2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/summer/slim_armor_special_summer2017Rogue.png new file mode 100644 index 0000000000..02ee609291 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/slim_armor_special_summer2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/slim_armor_special_summer2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/summer/slim_armor_special_summer2017Warrior.png new file mode 100644 index 0000000000..1140883cd1 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/slim_armor_special_summer2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/weapon_special_summer2017Healer.png b/website/assets/sprites/spritesmith/gear/events/summer/weapon_special_summer2017Healer.png new file mode 100644 index 0000000000..fae4fd4b1b Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/weapon_special_summer2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/weapon_special_summer2017Mage.png b/website/assets/sprites/spritesmith/gear/events/summer/weapon_special_summer2017Mage.png new file mode 100644 index 0000000000..d4604545c9 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/weapon_special_summer2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/weapon_special_summer2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/summer/weapon_special_summer2017Rogue.png new file mode 100644 index 0000000000..daa8c1e613 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/weapon_special_summer2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/summer/weapon_special_summer2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/summer/weapon_special_summer2017Warrior.png new file mode 100644 index 0000000000..6c58b3d5db Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/summer/weapon_special_summer2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/npcs/npc_alex.png b/website/assets/sprites/spritesmith/npcs/npc_alex.png index 67b7476d33..b5175c697b 100644 Binary files a/website/assets/sprites/spritesmith/npcs/npc_alex.png and b/website/assets/sprites/spritesmith/npcs/npc_alex.png differ diff --git a/website/assets/sprites/spritesmith/npcs/npc_bailey.png b/website/assets/sprites/spritesmith/npcs/npc_bailey.png index d5940b986b..f6ce232f91 100644 Binary files a/website/assets/sprites/spritesmith/npcs/npc_bailey.png and b/website/assets/sprites/spritesmith/npcs/npc_bailey.png differ diff --git a/website/assets/sprites/spritesmith/npcs/npc_daniel.png b/website/assets/sprites/spritesmith/npcs/npc_daniel.png index b12dd9e254..4e79603122 100644 Binary files a/website/assets/sprites/spritesmith/npcs/npc_daniel.png and b/website/assets/sprites/spritesmith/npcs/npc_daniel.png differ diff --git a/website/assets/sprites/spritesmith/npcs/npc_ian.png b/website/assets/sprites/spritesmith/npcs/npc_ian.png index 86860dfa1b..db4b9883bf 100644 Binary files a/website/assets/sprites/spritesmith/npcs/npc_ian.png and b/website/assets/sprites/spritesmith/npcs/npc_ian.png differ diff --git a/website/assets/sprites/spritesmith/npcs/npc_justin.png b/website/assets/sprites/spritesmith/npcs/npc_justin.png index 08ba7025c2..28a58235d3 100644 Binary files a/website/assets/sprites/spritesmith/npcs/npc_justin.png and b/website/assets/sprites/spritesmith/npcs/npc_justin.png differ diff --git a/website/assets/sprites/spritesmith/npcs/npc_matt.png b/website/assets/sprites/spritesmith/npcs/npc_matt.png index 2531f1084b..5ef1f87124 100644 Binary files a/website/assets/sprites/spritesmith/npcs/npc_matt.png and b/website/assets/sprites/spritesmith/npcs/npc_matt.png differ diff --git a/website/assets/sprites/spritesmith/npcs/npc_timetravelers_active.png b/website/assets/sprites/spritesmith/npcs/npc_timetravelers_active.png index f84a5ba2e0..e14e0d32ba 100644 Binary files a/website/assets/sprites/spritesmith/npcs/npc_timetravelers_active.png and b/website/assets/sprites/spritesmith/npcs/npc_timetravelers_active.png differ diff --git a/website/assets/sprites/spritesmith/npcs/seasonalshop_open.png b/website/assets/sprites/spritesmith/npcs/seasonalshop_open.png index e1f811893e..d66bf56d46 100644 Binary files a/website/assets/sprites/spritesmith/npcs/seasonalshop_open.png and b/website/assets/sprites/spritesmith/npcs/seasonalshop_open.png differ diff --git a/website/assets/sprites/spritesmith_large/promo/promo_summer_classes_2017.png b/website/assets/sprites/spritesmith_large/promo/promo_summer_classes_2017.png new file mode 100644 index 0000000000..8f3877bee5 Binary files /dev/null and b/website/assets/sprites/spritesmith_large/promo/promo_summer_classes_2017.png differ diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index 15564f8da7..6afa9fab76 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -232,6 +232,15 @@ "weaponSpecialSpring2017HealerText": "Egg Wand", "weaponSpecialSpring2017HealerNotes": "The true magic of this wand is the secret of new life inside the colorful shell. Increases Intelligence by <%= int %>. Limited Edition 2017 Spring Gear.", + "weaponSpecialSummer2017RogueText": "Sea Dragon Fins", + "weaponSpecialSummer2017RogueNotes": "The edges of these fins are razor-sharp. Increases Strength by <%= str %>. Limited Edition 2017 Summer Gear.", + "weaponSpecialSummer2017WarriorText": "The Mightiest Beach Umbrella", + "weaponSpecialSummer2017WarriorNotes": "All fear it. Increases Strength by <%= str %>. Limited Edition 2017 Summer Gear.", + "weaponSpecialSummer2017MageText": "Whirlpool Whips", + "weaponSpecialSummer2017MageNotes": "Summon up magical whips of boiling water to smite your tasks! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2017 Summer Gear.", + "weaponSpecialSummer2017HealerText": "Pearl Wand", + "weaponSpecialSummer2017HealerNotes": "A single touch from this pearl-tipped wand soothes away all wounds. Increases Intelligence by <%= int %>. Limited Edition 2017 Summer 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", @@ -516,6 +525,15 @@ "armorSpecialSpring2017HealerText": "Robes of Repose", "armorSpecialSpring2017HealerNotes": "The softness of these robes comforts you as well as any who need your healing help! Increases Constitution by <%= con %>. Limited Edition 2017 Spring Gear.", + "armorSpecialSummer2017RogueText": "Sea Dragon Tail", + "armorSpecialSummer2017RogueNotes": "This colorful garment transforms its wearer into a real Sea Dragon! Increases Perception by <%= per %>. Limited Edition 2017 Summer Gear.", + "armorSpecialSummer2017WarriorText": "Sandy Armor", + "armorSpecialSummer2017WarriorNotes": "Don't be fooled by the crumbly exterior: this armor is harder than steel. Increases Constitution by <%= con %>. Limited Edition 2017 Summer Gear.", + "armorSpecialSummer2017MageText": "Whirlpool Robes", + "armorSpecialSummer2017MageNotes": "Careful not to get splashed by these robes woven of enchanted water! Increases Intelligence by <%= int %>. Limited Edition 2017 Summer Gear.", + "armorSpecialSummer2017HealerText": "Silversea Tail", + "armorSpecialSummer2017HealerNotes": "This garment of silvery scales transforms its wearer into a real Seahealer! Increases Constitution by <%= con %>. Limited Edition 2017 Summer 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", @@ -853,6 +871,15 @@ "headSpecialSpring2017HealerText": "Petal Circlet", "headSpecialSpring2017HealerNotes": "This delicate crown emits the comforting scent of new Spring blooms. Increases Intelligence by <%= int %>. Limited Edition 2017 Spring Gear.", + "headSpecialSummer2017RogueText": "Sea Dragon Helm", + "headSpecialSummer2017RogueNotes": "This helm changes colors to help you blend in with your surroundings. Increases Perception by <%= per %>. Limited Edition 2017 Summer Gear.", + "headSpecialSummer2017WarriorText": "Sandcastle Helm", + "headSpecialSummer2017WarriorNotes": "The finest helm anyone could hope to wear... at least, until the tide comes in. Increases Strength by <%= str %>. Limited Edition 2017 Summer Gear.", + "headSpecialSummer2017MageText": "Whirlpool Hat", + "headSpecialSummer2017MageNotes": "This hat is composed entirely of a swirling, inverted whirlpool. Increases Perception by <%= per %>. Limited Edition 2017 Summer Gear.", + "headSpecialSummer2017HealerText": "Crown of Sea Creatures", + "headSpecialSummer2017HealerNotes": "This helm is made up of friendly sea creatures who are temporarily resting on your head, giving you sage advice. Increases Intelligence by <%= int %>. Limited Edition 2017 Summer 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.", @@ -1139,6 +1166,13 @@ "shieldSpecialSpring2017HealerText": "Basket Shield", "shieldSpecialSpring2017HealerNotes": "Protective and also handy for holding your many healing herbs and accoutrements. Increases Constitution by <%= con %>. Limited Edition 2017 Spring Gear.", + "shieldSpecialSummer2017RogueText": "Sea Dragon Fins", + "shieldSpecialSummer2017RogueNotes": "The edges of these fins are razor-sharp. Increases Strength by <%= str %>. Limited Edition 2017 Summer Gear.", + "shieldSpecialSummer2017WarriorText": "Scallop Shield", + "shieldSpecialSummer2017WarriorNotes": "This shell that you just found is both decorative AND defensive! Increases Constitution by <%= con %>. Limited Edition 2017 Summer Gear.", + "shieldSpecialSummer2017HealerText": "Oyster Shield", + "shieldSpecialSummer2017HealerNotes": "This magical oyster constantly generates pearls as well as protection. Increases Constitution by <%= con %>. Limited Edition 2017 Summer 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 86d3989ff5..e9653c7d4a 100644 --- a/website/common/locales/en/limited.json +++ b/website/common/locales/en/limited.json @@ -88,10 +88,10 @@ "grandMalkinSet": "Grand Malkin (Mage)", "cleverDogSet": "Clever Dog (Rogue)", "braveMouseSet": "Brave Mouse (Warrior)", - "summmer2016SharkWarriorSet": "Shark Warrior (Warrior)", - "summmer2016DolphinMageSet": "Dolphin Mage (Mage)", - "summmer2016SeahorseHealerSet": "Seahorse Healer (Healer)", - "summmer2016EelSet": "Eel Rogue (Rogue)", + "summer2016SharkWarriorSet": "Shark Warrior (Warrior)", + "summer2016DolphinMageSet": "Dolphin Mage (Mage)", + "summer2016SeahorseHealerSet": "Seahorse Healer (Healer)", + "summer2016EelSet": "Eel Rogue (Rogue)", "fall2016SwampThingSet": "Swamp Thing (Warrior)", "fall2016WickedSorcererSet": "Wicked Sorcerer (Mage)", "fall2016GorgonHealerSet": "Gorgon Healer (Healer)", @@ -104,6 +104,10 @@ "spring2017CanineConjurorSet": "Canine Conjuror (Mage)", "spring2017FloralMouseSet": "Floral Mouse (Healer)", "spring2017SneakyBunnySet": "Sneaky Bunny (Rogue)", + "summer2017SandcastleWarriorSet": "Sandcastle Warrior (Warrior)", + "summer2017WhirlpoolMageSet": "Whirlpool Mage (Mage)", + "summer2017SeashellSeahealerSet": "Seashell Seahealer (Healer)", + "summer2017SeaDragonSet": "Sea Dragon (Rogue)", "eventAvailability": "Available for purchase until <%= date(locale) %>.", "dateEndApril": "April 19", "dateEndMay": "May 17", diff --git a/website/common/script/content/constants.js b/website/common/script/content/constants.js index 177a3a688c..23291ff205 100644 --- a/website/common/script/content/constants.js +++ b/website/common/script/content/constants.js @@ -28,6 +28,7 @@ export const EVENTS = { fall2016: { start: '2016-09-20', end: '2016-11-02' }, winter2017: { start: '2016-12-16', end: '2017-02-02' }, spring2017: { start: '2017-03-21', end: '2017-05-02' }, + summer2017: { start: '2017-06-20', end: '2017-08-02' }, }; export const GEAR_TYPES = [ diff --git a/website/common/script/content/gear/sets/special/index.js b/website/common/script/content/gear/sets/special/index.js index 718e7ae4fc..2c7da33c6c 100644 --- a/website/common/script/content/gear/sets/special/index.js +++ b/website/common/script/content/gear/sets/special/index.js @@ -8,6 +8,8 @@ import takeThisGear from './special-takeThis'; import wonderconGear from './special-wondercon'; import t from '../../../translation'; +const CURRENT_SEASON = 'summer'; + let armor = { 0: backerGear.armorSpecial0, 1: contributorGear.armorSpecial1, @@ -142,9 +144,6 @@ let armor = { notes: t('armorSpecialSpringRogueNotes', { per: 15 }), value: 90, per: 15, - canBuy: () => { - return true; - }, }, springWarrior: { event: EVENTS.spring, @@ -153,9 +152,6 @@ let armor = { notes: t('armorSpecialSpringWarriorNotes', { con: 9 }), value: 90, con: 9, - canBuy: () => { - return true; - }, }, springMage: { event: EVENTS.spring, @@ -164,9 +160,6 @@ let armor = { notes: t('armorSpecialSpringMageNotes', { int: 9 }), value: 90, int: 9, - canBuy: () => { - return true; - }, }, springHealer: { event: EVENTS.spring, @@ -175,9 +168,6 @@ let armor = { notes: t('armorSpecialSpringHealerNotes', { con: 15 }), value: 90, con: 15, - canBuy: () => { - return true; - }, }, summerRogue: { event: EVENTS.summer, @@ -186,6 +176,9 @@ let armor = { notes: t('armorSpecialSummerRogueNotes', { per: 15 }), value: 90, per: 15, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summerWarrior: { event: EVENTS.summer, @@ -194,6 +187,9 @@ let armor = { notes: t('armorSpecialSummerWarriorNotes', { con: 9 }), value: 90, con: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summerMage: { event: EVENTS.summer, @@ -202,6 +198,9 @@ let armor = { notes: t('armorSpecialSummerMageNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summerHealer: { event: EVENTS.summer, @@ -210,6 +209,9 @@ let armor = { notes: t('armorSpecialSummerHealerNotes', { con: 15 }), value: 90, con: 15, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, fallRogue: { event: EVENTS.fall, @@ -288,9 +290,6 @@ let armor = { notes: t('armorSpecialSpring2015RogueNotes', { per: 15 }), value: 90, per: 15, - canBuy: () => { - return true; - }, }, spring2015Warrior: { event: EVENTS.spring2015, @@ -299,9 +298,6 @@ let armor = { notes: t('armorSpecialSpring2015WarriorNotes', { con: 9 }), value: 90, con: 9, - canBuy: () => { - return true; - }, }, spring2015Mage: { event: EVENTS.spring2015, @@ -310,9 +306,6 @@ let armor = { notes: t('armorSpecialSpring2015MageNotes', { int: 9 }), value: 90, int: 9, - canBuy: () => { - return true; - }, }, spring2015Healer: { event: EVENTS.spring2015, @@ -321,9 +314,6 @@ let armor = { notes: t('armorSpecialSpring2015HealerNotes', { con: 15 }), value: 90, con: 15, - canBuy: () => { - return true; - }, }, summer2015Rogue: { event: EVENTS.summer2015, @@ -332,6 +322,9 @@ let armor = { notes: t('armorSpecialSummer2015RogueNotes', { per: 15 }), value: 90, per: 15, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Warrior: { event: EVENTS.summer2015, @@ -340,6 +333,9 @@ let armor = { notes: t('armorSpecialSummer2015WarriorNotes', { con: 9 }), value: 90, con: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Mage: { event: EVENTS.summer2015, @@ -348,6 +344,9 @@ let armor = { notes: t('armorSpecialSummer2015MageNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Healer: { event: EVENTS.summer2015, @@ -356,6 +355,9 @@ let armor = { notes: t('armorSpecialSummer2015HealerNotes', { con: 15 }), value: 90, con: 15, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, fall2015Rogue: { event: EVENTS.fall2015, @@ -440,9 +442,6 @@ let armor = { notes: t('armorSpecialSpring2016RogueNotes', { per: 15 }), value: 90, per: 15, - canBuy: () => { - return true; - }, }, spring2016Warrior: { event: EVENTS.spring2016, @@ -451,9 +450,6 @@ let armor = { notes: t('armorSpecialSpring2016WarriorNotes', { con: 9 }), value: 90, con: 9, - canBuy: () => { - return true; - }, }, spring2016Mage: { event: EVENTS.spring2016, @@ -462,9 +458,6 @@ let armor = { notes: t('armorSpecialSpring2016MageNotes', { int: 9 }), value: 90, int: 9, - canBuy: () => { - return true; - }, }, spring2016Healer: { event: EVENTS.spring2016, @@ -473,9 +466,6 @@ let armor = { notes: t('armorSpecialSpring2016HealerNotes', { con: 15 }), value: 90, con: 15, - canBuy: () => { - return true; - }, }, summer2016Rogue: { event: EVENTS.summer2016, @@ -484,6 +474,9 @@ let armor = { notes: t('armorSpecialSummer2016RogueNotes', { per: 15 }), value: 90, per: 15, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2016Warrior: { event: EVENTS.summer2016, @@ -492,6 +485,9 @@ let armor = { notes: t('armorSpecialSummer2016WarriorNotes', { con: 9 }), value: 90, con: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2016Mage: { event: EVENTS.summer2016, @@ -500,6 +496,9 @@ let armor = { notes: t('armorSpecialSummer2016MageNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2016Healer: { event: EVENTS.summer2016, @@ -508,6 +507,9 @@ let armor = { notes: t('armorSpecialSummer2016HealerNotes', { con: 15 }), value: 90, con: 15, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, fall2016Rogue: { event: EVENTS.fall2016, @@ -611,6 +613,38 @@ let armor = { value: 90, con: 15, }, + summer2017Rogue: { + event: EVENTS.summer2017, + specialClass: 'rogue', + text: t('armorSpecialSummer2017RogueText'), + notes: t('armorSpecialSummer2017RogueNotes', { per: 15 }), + value: 90, + per: 15, + }, + summer2017Warrior: { + event: EVENTS.summer2017, + specialClass: 'warrior', + text: t('armorSpecialSummer2017WarriorText'), + notes: t('armorSpecialSummer2017WarriorNotes', { con: 9 }), + value: 90, + con: 9, + }, + summer2017Mage: { + event: EVENTS.summer2017, + specialClass: 'wizard', + text: t('armorSpecialSummer2017MageText'), + notes: t('armorSpecialSummer2017MageNotes', { int: 9 }), + value: 90, + int: 9, + }, + summer2017Healer: { + event: EVENTS.summer2017, + specialClass: 'healer', + text: t('armorSpecialSummer2017HealerText'), + notes: t('armorSpecialSummer2017HealerNotes', { con: 15 }), + value: 90, + con: 15, + }, }; let back = { @@ -635,6 +669,9 @@ let body = { text: t('bodySpecialSummerHealerText'), notes: t('bodySpecialSummerHealerNotes'), value: 20, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summerMage: { event: EVENTS.summer, @@ -642,6 +679,9 @@ let body = { text: t('bodySpecialSummerMageText'), notes: t('bodySpecialSummerMageNotes'), value: 20, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Healer: { event: EVENTS.summer2015, @@ -649,6 +689,9 @@ let body = { text: t('bodySpecialSummer2015HealerText'), notes: t('bodySpecialSummer2015HealerNotes'), value: 20, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Mage: { event: EVENTS.summer2015, @@ -656,6 +699,9 @@ let body = { text: t('bodySpecialSummer2015MageText'), notes: t('bodySpecialSummer2015MageNotes'), value: 20, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Rogue: { event: EVENTS.summer2015, @@ -663,6 +709,9 @@ let body = { text: t('bodySpecialSummer2015RogueText'), notes: t('bodySpecialSummer2015RogueNotes'), value: 20, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Warrior: { event: EVENTS.summer2015, @@ -670,6 +719,9 @@ let body = { text: t('bodySpecialSummer2015WarriorText'), notes: t('bodySpecialSummer2015WarriorNotes'), value: 20, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, }; @@ -682,6 +734,9 @@ let eyewear = { text: t('eyewearSpecialSummerRogueText'), notes: t('eyewearSpecialSummerRogueNotes'), value: 20, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summerWarrior: { event: EVENTS.summer, @@ -689,6 +744,9 @@ let eyewear = { text: t('eyewearSpecialSummerWarriorText'), notes: t('eyewearSpecialSummerWarriorNotes'), value: 20, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, blackTopFrame: { gearSet: 'glasses', @@ -877,9 +935,6 @@ let head = { notes: t('headSpecialSpringRogueNotes', { per: 9 }), value: 60, per: 9, - canBuy: () => { - return true; - }, }, springWarrior: { event: EVENTS.spring, @@ -888,9 +943,6 @@ let head = { notes: t('headSpecialSpringWarriorNotes', { str: 9 }), value: 60, str: 9, - canBuy: () => { - return true; - }, }, springMage: { event: EVENTS.spring, @@ -899,9 +951,6 @@ let head = { notes: t('headSpecialSpringMageNotes', { per: 7 }), value: 60, per: 7, - canBuy: () => { - return true; - }, }, springHealer: { event: EVENTS.spring, @@ -910,9 +959,6 @@ let head = { notes: t('headSpecialSpringHealerNotes', { int: 7 }), value: 60, int: 7, - canBuy: () => { - return true; - }, }, summerRogue: { event: EVENTS.summer, @@ -921,6 +967,9 @@ let head = { notes: t('headSpecialSummerRogueNotes', { per: 9 }), value: 60, per: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summerWarrior: { event: EVENTS.summer, @@ -929,6 +978,9 @@ let head = { notes: t('headSpecialSummerWarriorNotes', { str: 9 }), value: 60, str: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summerMage: { event: EVENTS.summer, @@ -937,6 +989,9 @@ let head = { notes: t('headSpecialSummerMageNotes', { per: 7 }), value: 60, per: 7, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summerHealer: { event: EVENTS.summer, @@ -945,6 +1000,9 @@ let head = { notes: t('headSpecialSummerHealerNotes', { int: 7 }), value: 60, int: 7, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, fallRogue: { event: EVENTS.fall, @@ -1023,9 +1081,6 @@ let head = { notes: t('headSpecialSpring2015RogueNotes', { per: 9 }), value: 60, per: 9, - canBuy: () => { - return true; - }, }, spring2015Warrior: { event: EVENTS.spring2015, @@ -1034,9 +1089,6 @@ let head = { notes: t('headSpecialSpring2015WarriorNotes', { str: 9 }), value: 60, str: 9, - canBuy: () => { - return true; - }, }, spring2015Mage: { event: EVENTS.spring2015, @@ -1045,9 +1097,6 @@ let head = { notes: t('headSpecialSpring2015MageNotes', { per: 7 }), value: 60, per: 7, - canBuy: () => { - return true; - }, }, spring2015Healer: { event: EVENTS.spring2015, @@ -1056,9 +1105,6 @@ let head = { notes: t('headSpecialSpring2015HealerNotes', { int: 7 }), value: 60, int: 7, - canBuy: () => { - return true; - }, }, summer2015Rogue: { event: EVENTS.summer2015, @@ -1067,6 +1113,9 @@ let head = { notes: t('headSpecialSummer2015RogueNotes', { per: 9 }), value: 60, per: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Warrior: { event: EVENTS.summer2015, @@ -1075,6 +1124,9 @@ let head = { notes: t('headSpecialSummer2015WarriorNotes', { str: 9 }), value: 60, str: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Mage: { event: EVENTS.summer2015, @@ -1083,6 +1135,9 @@ let head = { notes: t('headSpecialSummer2015MageNotes', { per: 7 }), value: 60, per: 7, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Healer: { event: EVENTS.summer2015, @@ -1091,6 +1146,9 @@ let head = { notes: t('headSpecialSummer2015HealerNotes', { int: 7 }), value: 60, int: 7, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, fall2015Rogue: { event: EVENTS.fall2015, @@ -1175,9 +1233,6 @@ let head = { notes: t('headSpecialSpring2016RogueNotes', { per: 9 }), value: 60, per: 9, - canBuy: () => { - return true; - }, }, spring2016Warrior: { event: EVENTS.spring2016, @@ -1186,9 +1241,6 @@ let head = { notes: t('headSpecialSpring2016WarriorNotes', { str: 9 }), value: 60, str: 9, - canBuy: () => { - return true; - }, }, spring2016Mage: { event: EVENTS.spring2016, @@ -1197,9 +1249,6 @@ let head = { notes: t('headSpecialSpring2016MageNotes', { per: 7 }), value: 60, per: 7, - canBuy: () => { - return true; - }, }, spring2016Healer: { event: EVENTS.spring2016, @@ -1208,9 +1257,6 @@ let head = { notes: t('headSpecialSpring2016HealerNotes', { int: 7 }), value: 60, int: 7, - canBuy: () => { - return true; - }, }, summer2016Rogue: { event: EVENTS.summer2016, @@ -1219,6 +1265,9 @@ let head = { notes: t('headSpecialSummer2016RogueNotes', { per: 9 }), value: 60, per: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2016Warrior: { event: EVENTS.summer2016, @@ -1227,6 +1276,9 @@ let head = { notes: t('headSpecialSummer2016WarriorNotes', { str: 9 }), value: 60, str: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2016Mage: { event: EVENTS.summer2016, @@ -1235,6 +1287,9 @@ let head = { notes: t('headSpecialSummer2016MageNotes', { per: 7 }), value: 60, per: 7, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2016Healer: { event: EVENTS.summer2016, @@ -1243,6 +1298,9 @@ let head = { notes: t('headSpecialSummer2016HealerNotes', { int: 7 }), value: 60, int: 7, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, fall2016Rogue: { event: EVENTS.fall2016, @@ -1346,6 +1404,38 @@ let head = { value: 60, int: 7, }, + summer2017Rogue: { + event: EVENTS.summer2017, + specialClass: 'rogue', + text: t('headSpecialSummer2017RogueText'), + notes: t('headSpecialSummer2017RogueNotes', { per: 9 }), + value: 60, + per: 9, + }, + summer2017Warrior: { + event: EVENTS.summer2017, + specialClass: 'warrior', + text: t('headSpecialSummer2017WarriorText'), + notes: t('headSpecialSummer2017WarriorNotes', { str: 9 }), + value: 60, + str: 9, + }, + summer2017Mage: { + event: EVENTS.summer2017, + specialClass: 'wizard', + text: t('headSpecialSummer2017MageText'), + notes: t('headSpecialSummer2017MageNotes', { per: 7 }), + value: 60, + per: 7, + }, + summer2017Healer: { + event: EVENTS.summer2017, + specialClass: 'healer', + text: t('headSpecialSummer2017HealerText'), + notes: t('headSpecialSummer2017HealerNotes', { int: 7 }), + value: 60, + int: 7, + }, }; let headAccessory = { @@ -1355,9 +1445,6 @@ let headAccessory = { text: t('headAccessorySpecialSpringRogueText'), notes: t('headAccessorySpecialSpringRogueNotes'), value: 20, - canBuy: () => { - return true; - }, }, springWarrior: { event: EVENTS.spring, @@ -1365,9 +1452,6 @@ let headAccessory = { text: t('headAccessorySpecialSpringWarriorText'), notes: t('headAccessorySpecialSpringWarriorNotes'), value: 20, - canBuy: () => { - return true; - }, }, springMage: { event: EVENTS.spring, @@ -1375,9 +1459,6 @@ let headAccessory = { text: t('headAccessorySpecialSpringMageText'), notes: t('headAccessorySpecialSpringMageNotes'), value: 20, - canBuy: () => { - return true; - }, }, springHealer: { event: EVENTS.spring, @@ -1385,9 +1466,6 @@ let headAccessory = { text: t('headAccessorySpecialSpringHealerText'), notes: t('headAccessorySpecialSpringHealerNotes'), value: 20, - canBuy: () => { - return true; - }, }, spring2015Rogue: { event: EVENTS.spring2015, @@ -1395,9 +1473,6 @@ let headAccessory = { text: t('headAccessorySpecialSpring2015RogueText'), notes: t('headAccessorySpecialSpring2015RogueNotes'), value: 20, - canBuy: () => { - return true; - }, }, spring2015Warrior: { event: EVENTS.spring2015, @@ -1405,9 +1480,6 @@ let headAccessory = { text: t('headAccessorySpecialSpring2015WarriorText'), notes: t('headAccessorySpecialSpring2015WarriorNotes'), value: 20, - canBuy: () => { - return true; - }, }, spring2015Mage: { event: EVENTS.spring2015, @@ -1415,9 +1487,6 @@ let headAccessory = { text: t('headAccessorySpecialSpring2015MageText'), notes: t('headAccessorySpecialSpring2015MageNotes'), value: 20, - canBuy: () => { - return true; - }, }, spring2015Healer: { event: EVENTS.spring2015, @@ -1425,9 +1494,6 @@ let headAccessory = { text: t('headAccessorySpecialSpring2015HealerText'), notes: t('headAccessorySpecialSpring2015HealerNotes'), value: 20, - canBuy: () => { - return true; - }, }, bearEars: { gearSet: 'animal', @@ -1515,9 +1581,6 @@ let headAccessory = { text: t('headAccessorySpecialSpring2016RogueText'), notes: t('headAccessorySpecialSpring2016RogueNotes'), value: 20, - canBuy: () => { - return true; - }, }, spring2016Warrior: { event: EVENTS.spring2016, @@ -1525,9 +1588,6 @@ let headAccessory = { text: t('headAccessorySpecialSpring2016WarriorText'), notes: t('headAccessorySpecialSpring2016WarriorNotes'), value: 20, - canBuy: () => { - return true; - }, }, spring2016Mage: { event: EVENTS.spring2016, @@ -1535,9 +1595,6 @@ let headAccessory = { text: t('headAccessorySpecialSpring2016MageText'), notes: t('headAccessorySpecialSpring2016MageNotes'), value: 20, - canBuy: () => { - return true; - }, }, spring2016Healer: { event: EVENTS.spring2016, @@ -1545,9 +1602,6 @@ let headAccessory = { text: t('headAccessorySpecialSpring2016HealerText'), notes: t('headAccessorySpecialSpring2016HealerNotes'), value: 20, - canBuy: () => { - return true; - }, }, spring2017Rogue: { event: EVENTS.spring2017, @@ -1671,9 +1725,6 @@ let shield = { notes: t('shieldSpecialSpringRogueNotes', { str: 8 }), value: 80, str: 8, - canBuy: () => { - return true; - }, }, springWarrior: { event: EVENTS.spring, @@ -1682,9 +1733,6 @@ let shield = { notes: t('shieldSpecialSpringWarriorNotes', { con: 7 }), value: 70, con: 7, - canBuy: () => { - return true; - }, }, springHealer: { event: EVENTS.spring, @@ -1693,9 +1741,6 @@ let shield = { notes: t('shieldSpecialSpringHealerNotes', { con: 9 }), value: 70, con: 9, - canBuy: () => { - return true; - }, }, summerRogue: { event: EVENTS.summer, @@ -1704,6 +1749,9 @@ let shield = { notes: t('shieldSpecialSummerRogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summerWarrior: { event: EVENTS.summer, @@ -1712,6 +1760,9 @@ let shield = { notes: t('shieldSpecialSummerWarriorNotes', { con: 7 }), value: 70, con: 7, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summerHealer: { event: EVENTS.summer, @@ -1720,6 +1771,9 @@ let shield = { notes: t('shieldSpecialSummerHealerNotes', { con: 9 }), value: 70, con: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, fallRogue: { event: EVENTS.fall, @@ -1776,9 +1830,6 @@ let shield = { notes: t('shieldSpecialSpring2015RogueNotes', { str: 8 }), value: 80, str: 8, - canBuy: () => { - return true; - }, }, spring2015Warrior: { event: EVENTS.spring2015, @@ -1787,9 +1838,6 @@ let shield = { notes: t('shieldSpecialSpring2015WarriorNotes', { con: 7 }), value: 70, con: 7, - canBuy: () => { - return true; - }, }, spring2015Healer: { event: EVENTS.spring2015, @@ -1798,9 +1846,6 @@ let shield = { notes: t('shieldSpecialSpring2015HealerNotes', { con: 9 }), value: 70, con: 9, - canBuy: () => { - return true; - }, }, summer2015Rogue: { event: EVENTS.summer2015, @@ -1809,6 +1854,9 @@ let shield = { notes: t('shieldSpecialSummer2015RogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Warrior: { event: EVENTS.summer2015, @@ -1817,6 +1865,9 @@ let shield = { notes: t('shieldSpecialSummer2015WarriorNotes', { con: 7 }), value: 70, con: 7, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Healer: { event: EVENTS.summer2015, @@ -1825,6 +1876,9 @@ let shield = { notes: t('shieldSpecialSummer2015HealerNotes', { con: 9 }), value: 70, con: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, fall2015Rogue: { event: EVENTS.fall2015, @@ -1881,9 +1935,6 @@ let shield = { notes: t('shieldSpecialSpring2016RogueNotes', { str: 8 }), value: 80, str: 8, - canBuy: () => { - return true; - }, }, spring2016Warrior: { event: EVENTS.spring2016, @@ -1892,9 +1943,6 @@ let shield = { notes: t('shieldSpecialSpring2016WarriorNotes', { con: 7 }), value: 70, con: 7, - canBuy: () => { - return true; - }, }, spring2016Healer: { event: EVENTS.spring2016, @@ -1903,9 +1951,6 @@ let shield = { notes: t('shieldSpecialSpring2016HealerNotes', { con: 9 }), value: 70, con: 9, - canBuy: () => { - return true; - }, }, summer2016Rogue: { event: EVENTS.summer2016, @@ -1914,6 +1959,9 @@ let shield = { notes: t('shieldSpecialSummer2016RogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2016Warrior: { event: EVENTS.summer2016, @@ -1922,6 +1970,9 @@ let shield = { notes: t('shieldSpecialSummer2016WarriorNotes', { con: 7 }), value: 70, con: 7, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2016Healer: { event: EVENTS.summer2016, @@ -1930,6 +1981,9 @@ let shield = { notes: t('shieldSpecialSummer2016HealerNotes', { con: 9 }), value: 70, con: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, fall2016Rogue: { event: EVENTS.fall2016, @@ -2003,6 +2057,30 @@ let shield = { value: 70, con: 9, }, + summer2017Rogue: { + event: EVENTS.summer2017, + specialClass: 'rogue', + text: t('shieldSpecialSummer2017RogueText'), + notes: t('shieldSpecialSummer2017RogueNotes', { str: 8 }), + value: 80, + str: 8, + }, + summer2017Warrior: { + event: EVENTS.summer2017, + specialClass: 'warrior', + text: t('shieldSpecialSummer2017WarriorText'), + notes: t('shieldSpecialSummer2017WarriorNotes', { con: 7 }), + value: 70, + con: 7, + }, + summer2017Healer: { + event: EVENTS.summer2017, + specialClass: 'healer', + text: t('shieldSpecialSummer2017HealerText'), + notes: t('shieldSpecialSummer2017HealerNotes', { con: 9 }), + value: 70, + con: 9, + }, }; let weapon = { @@ -2136,9 +2214,6 @@ let weapon = { notes: t('weaponSpecialSpringRogueNotes', { str: 8 }), value: 80, str: 8, - canBuy: () => { - return true; - }, }, springWarrior: { event: EVENTS.spring, @@ -2147,9 +2222,6 @@ let weapon = { notes: t('weaponSpecialSpringWarriorNotes', { str: 15 }), value: 90, str: 15, - canBuy: () => { - return true; - }, }, springMage: { event: EVENTS.spring, @@ -2160,9 +2232,6 @@ let weapon = { value: 160, int: 15, per: 7, - canBuy: () => { - return true; - }, }, springHealer: { event: EVENTS.spring, @@ -2171,9 +2240,6 @@ let weapon = { notes: t('weaponSpecialSpringHealerNotes', { int: 9 }), value: 90, int: 9, - canBuy: () => { - return true; - }, }, summerRogue: { event: EVENTS.summer, @@ -2182,6 +2248,9 @@ let weapon = { notes: t('weaponSpecialSummerRogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summerWarrior: { event: EVENTS.summer, @@ -2190,6 +2259,9 @@ let weapon = { notes: t('weaponSpecialSummerWarriorNotes', { str: 15 }), value: 90, str: 15, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summerMage: { event: EVENTS.summer, @@ -2200,6 +2272,9 @@ let weapon = { value: 160, int: 15, per: 7, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summerHealer: { event: EVENTS.summer, @@ -2208,6 +2283,9 @@ let weapon = { notes: t('weaponSpecialSummerHealerNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, fallRogue: { event: EVENTS.fall, @@ -2284,9 +2362,6 @@ let weapon = { notes: t('weaponSpecialSpring2015RogueNotes', { str: 8 }), value: 80, str: 8, - canBuy: () => { - return true; - }, }, spring2015Warrior: { event: EVENTS.spring2015, @@ -2295,9 +2370,6 @@ let weapon = { notes: t('weaponSpecialSpring2015WarriorNotes', { str: 15 }), value: 90, str: 15, - canBuy: () => { - return true; - }, }, spring2015Mage: { event: EVENTS.spring2015, @@ -2308,9 +2380,6 @@ let weapon = { value: 160, int: 15, per: 7, - canBuy: () => { - return true; - }, }, spring2015Healer: { event: EVENTS.spring2015, @@ -2319,9 +2388,6 @@ let weapon = { notes: t('weaponSpecialSpring2015HealerNotes', { int: 9 }), value: 90, int: 9, - canBuy: () => { - return true; - }, }, summer2015Rogue: { event: EVENTS.summer2015, @@ -2330,6 +2396,9 @@ let weapon = { notes: t('weaponSpecialSummer2015RogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Warrior: { event: EVENTS.summer2015, @@ -2338,6 +2407,9 @@ let weapon = { notes: t('weaponSpecialSummer2015WarriorNotes', { str: 15 }), value: 90, str: 15, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Mage: { event: EVENTS.summer2015, @@ -2348,6 +2420,9 @@ let weapon = { value: 160, int: 15, per: 7, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2015Healer: { event: EVENTS.summer2015, @@ -2356,6 +2431,9 @@ let weapon = { notes: t('weaponSpecialSummer2015HealerNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, fall2015Rogue: { event: EVENTS.fall2015, @@ -2432,9 +2510,6 @@ let weapon = { notes: t('weaponSpecialSpring2016RogueNotes', { str: 8 }), value: 80, str: 8, - canBuy: () => { - return true; - }, }, spring2016Warrior: { event: EVENTS.spring2016, @@ -2443,9 +2518,6 @@ let weapon = { notes: t('weaponSpecialSpring2016WarriorNotes', { str: 15 }), value: 90, str: 15, - canBuy: () => { - return true; - }, }, spring2016Mage: { event: EVENTS.spring2016, @@ -2456,9 +2528,6 @@ let weapon = { value: 160, int: 15, per: 7, - canBuy: () => { - return true; - }, }, spring2016Healer: { event: EVENTS.spring2016, @@ -2467,9 +2536,6 @@ let weapon = { notes: t('weaponSpecialSpring2016HealerNotes', { int: 9 }), value: 90, int: 9, - canBuy: () => { - return true; - }, }, summer2016Rogue: { event: EVENTS.summer2016, @@ -2478,6 +2544,9 @@ let weapon = { notes: t('weaponSpecialSummer2016RogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2016Warrior: { event: EVENTS.summer2016, @@ -2486,6 +2555,9 @@ let weapon = { notes: t('weaponSpecialSummer2016WarriorNotes', { str: 15 }), value: 90, str: 15, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2016Mage: { event: EVENTS.summer2016, @@ -2496,6 +2568,9 @@ let weapon = { value: 160, int: 15, per: 7, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, summer2016Healer: { event: EVENTS.summer2016, @@ -2504,6 +2579,9 @@ let weapon = { notes: t('weaponSpecialSummer2016HealerNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => { + return CURRENT_SEASON === 'summer'; + }, }, fall2016Rogue: { event: EVENTS.fall2016, @@ -2607,6 +2685,40 @@ let weapon = { value: 90, int: 9, }, + summer2017Rogue: { + event: EVENTS.summer2017, + specialClass: 'rogue', + text: t('weaponSpecialSummer2017RogueText'), + notes: t('weaponSpecialSummer2017RogueNotes', { str: 8 }), + value: 80, + str: 8, + }, + summer2017Warrior: { + event: EVENTS.summer2017, + specialClass: 'warrior', + text: t('weaponSpecialSummer2017WarriorText'), + notes: t('weaponSpecialSummer2017WarriorNotes', { str: 15 }), + value: 90, + str: 15, + }, + summer2017Mage: { + event: EVENTS.summer2017, + specialClass: 'wizard', + twoHanded: true, + text: t('weaponSpecialSummer2017MageText'), + notes: t('weaponSpecialSummer2017MageNotes', { int: 15, per: 7 }), + value: 160, + int: 15, + per: 7, + }, + summer2017Healer: { + event: EVENTS.summer2017, + specialClass: 'healer', + text: t('weaponSpecialSummer2017HealerText'), + notes: t('weaponSpecialSummer2017HealerNotes', { int: 9 }), + value: 90, + int: 9, + }, }; let specialSet = { diff --git a/website/common/script/libs/shops.js b/website/common/script/libs/shops.js index e92f1ffb73..e0bca9e112 100644 --- a/website/common/script/libs/shops.js +++ b/website/common/script/libs/shops.js @@ -297,6 +297,18 @@ shops.getTimeTravelersCategories = function getTimeTravelersCategories (user, la // }; shops.getSeasonalShopCategories = function getSeasonalShopCategories (user, language) { const AVAILABLE_SETS = { + summerHealer: i18n.t('reefSeahealerSet', language), + summer2015Healer: i18n.t('strappingSailorSet', language), + summer2016Healer: i18n.t('summer2016SeahorseHealerSet', language), + summerMage: i18n.t('emeraldMermageSet', language), + summer2015Mage: i18n.t('shipSoothsayerSet', language), + summer2016Mage: i18n.t('summer2016DolphinMageSet', language), + summerRogue: i18n.t('roguishPirateSet', language), + summer2015Rogue: i18n.t('reefRenegadeSet', language), + summer2016Rogue: i18n.t('summer2016EelSet', language), + summerWarrior: i18n.t('daringSwashbucklerSet', language), + summer2015Warrior: i18n.t('sunfishWarriorSet', language), + summer2016Warrior: i18n.t('summer2016SharkWarriorSet', language), }; const AVAILABLE_SPELLS = [ diff --git a/website/server/controllers/api-v3/shops.js b/website/server/controllers/api-v3/shops.js index 4eded39970..be664af643 100644 --- a/website/server/controllers/api-v3/shops.js +++ b/website/server/controllers/api-v3/shops.js @@ -107,8 +107,8 @@ api.getSeasonalShopItems = { let resObject = { identifier: 'seasonalShop', text: res.t('seasonalShop'), - notes: res.t('seasonalShopClosedText'), - imageName: 'seasonalshop_closed', + notes: res.t('seasonalShopSummerText'), + imageName: 'seasonalshop_open', categories: shops.getSeasonalShopCategories(user, req.language), }; diff --git a/website/views/options/inventory/seasonal-shop.jade b/website/views/options/inventory/seasonal-shop.jade index 83823f4f47..fb82c3024b 100644 --- a/website/views/options/inventory/seasonal-shop.jade +++ b/website/views/options/inventory/seasonal-shop.jade @@ -1,12 +1,12 @@ .container-fluid .stable.row: .col-xs-12 - div(class="#{env.worldDmg.seasonalShop ? 'seasonalshop_broken' : 'seasonalshop_closed'}").pull-left-sm.col-centered + div(class="#{env.worldDmg.seasonalShop ? 'seasonalshop_broken' : 'seasonalshop_open'}").pull-left-sm.col-centered .popover.static-popover.fade.right.in.pull-left-sm.col-centered .arrow.hidden-xs - h3.popover-title!=env.t('seasonalShopClosedTitle', {linkStart:"", linkEnd: ""}) + h3.popover-title!=env.t('seasonalShopTitle', {linkStart:"", linkEnd: ""}) .popover-content - p(ng-if='!env.worldDmg.seasonalShop')!=env.t('seasonalShopClosedText') - p(ng-if='env.worldDmg.seasonalShop')!=env.t('seasonalShopClosedText') + p(ng-if='!env.worldDmg.seasonalShop')!=env.t('seasonalShopSummerText') + p(ng-if='env.worldDmg.seasonalShop')!=env.t('seasonalShopSummerText') li.customize-menu.inventory-gear menu.pets-menu(label='{{category.text}}', ng-repeat='category in seasonalShopCategories') @@ -19,7 +19,7 @@ div | {{item.value}} span(ng-class="{ 'shop_gold': item.currency === 'gold', 'Pet_Currency_Gem1x inline-gems': item.currency === 'gems'}") - // div(ng-if='category.identifier === "spells"') + div(ng-if='category.identifier === "spells"') button.customize-option(class='inventory_special_nye', popover='{{::Content.spells.special.nye.notes()}}', popover-title='{{::Content.spells.special.nye.text()}}', diff --git a/website/views/shared/new-stuff.jade b/website/views/shared/new-stuff.jade index 57c4023450..8c92c91509 100644 --- a/website/views/shared/new-stuff.jade +++ b/website/views/shared/new-stuff.jade @@ -1,22 +1,45 @@ -h2 6/19/2017 - HABITICA BLOG: BEHIND THE SCENES AT HABITICA HOUSE, FEATURED WIKI ON CUSTOM REWARDS +.promo_summer_classes_2017.pull-right +h2 6/20/2017 - SUMMER SPLASH BEGINS: SUMMER CLASS OUTFITS, SEASONAL SHOP, AND NPC DECORATIONS! hr tr td - .scene_habitica_house.center-block - h3 Behind the Scenes: Habitica House - p There's a new Behind the Scenes post on the Habitica blog about our recent Staff Retreat. Come check out some great photos and anecdotes from the trip, and find more fun by searching #HabiticaHouse on Twitter and Instagram! + h3 Summer Splash Begins! + p To escape the summer heat in Habit City, everyone's moved down to the undersea city of Dilatory. The Summer Splash event has begun! tr td - .scene_buying_rewards.pull-right - h3 Featured Wiki Article: Sample Rewards - p This month's featured Wiki article is about Sample Rewards! We hope that it will help you as you treat yourself in recognition of your hard work! Be sure to check it out, and let us know what you think by reaching out on Twitter, Tumblr, and Facebook. - p.small.muted by Beffymaroo and the Wiki Wizards + h3 Summer Class Outfits + p From now until July 31st, limited edition outfits are available in the Rewards column. Depending on your class, you can be a Seashell Healer, Sea Dragon Rogue, Sandcastle Warrior, or Whirlpool Mage! You'd better get productive to earn enough gold before they disappear. Good luck! + p.small.muted by AnnDeLune, tricksy.fox, Vampitch, and nonight + tr + td + .seasonalshop_open.pull-left.slight-right-margin + h3 Seasonal Shop Is Open! + p The Seasonal Shop has opened! The Seasonal Sorceress is stocking the seasonal edition versions of previous summer outfits, now available for gems instead of gold. Plus, there will be more fun things in the shop as the event progresses. The Seasonal Shop will only be open until July 31st, so don't wait! + p.small.muted by SabreCat, Lemoness, Giu09, JaizakAripaik, Teto Forever, and Kai + tr + td + .npc_matt.pull-right + h3 NPC Costumes + p Looks like the NPCs are really getting in to the cheery summer mood around the site. Who wouldn't? After all, there's plenty more celebration to come.... + p.small.muted by Lemoness if menuItem !== 'oldNews' hr a(href='/static/old-news', target='_blank') Read older news mixin oldNews + h2 6/19/2017 - HABITICA BLOG: BEHIND THE SCENES AT HABITICA HOUSE, FEATURED WIKI ON CUSTOM REWARDS + tr + td + .scene_habitica_house.center-block + h3 Behind the Scenes: Habitica House + p There's a new Behind the Scenes post on the Habitica blog about our recent Staff Retreat. Come check out some great photos and anecdotes from the trip, and find more fun by searching #HabiticaHouse on Twitter and Instagram! + tr + td + .scene_buying_rewards.pull-right + h3 Featured Wiki Article: Sample Rewards + p This month's featured Wiki article is about Sample Rewards! We hope that it will help you as you treat yourself in recognition of your hard work! Be sure to check it out, and let us know what you think by reaching out on Twitter, Tumblr, and Facebook. + p.small.muted by Beffymaroo and the Wiki Wizards h2 6/16/2017 - NEW AUDIO THEMES AND GREETING CARDS, CHALLENGE JOINING ACHIEVEMENT, AND REDUCED COLLECTION QUEST DIFFICULTY tr td