diff --git a/website/assets/img/project_files/npcs/march/npc_bailey.png b/website/assets/img/project_files/npcs/march/npc_bailey.png deleted file mode 100644 index 79bf7d85ee..0000000000 Binary files a/website/assets/img/project_files/npcs/march/npc_bailey.png and /dev/null differ diff --git a/website/assets/img/project_files/npcs/march/npc_matt.png b/website/assets/img/project_files/npcs/march/npc_matt.png deleted file mode 100644 index bd53997b3c..0000000000 Binary files a/website/assets/img/project_files/npcs/march/npc_matt.png and /dev/null differ diff --git a/website/assets/img/project_files/npcs/march/npc_alex.png b/website/assets/img/project_files/npcs/spring/npc_alex.png similarity index 100% rename from website/assets/img/project_files/npcs/march/npc_alex.png rename to website/assets/img/project_files/npcs/spring/npc_alex.png diff --git a/website/assets/img/project_files/npcs/spring/npc_bailey.png b/website/assets/img/project_files/npcs/spring/npc_bailey.png new file mode 100644 index 0000000000..0fe6763311 Binary files /dev/null and b/website/assets/img/project_files/npcs/spring/npc_bailey.png differ diff --git a/website/assets/img/project_files/npcs/march/npc_ian.png b/website/assets/img/project_files/npcs/spring/npc_ian.png similarity index 100% rename from website/assets/img/project_files/npcs/march/npc_ian.png rename to website/assets/img/project_files/npcs/spring/npc_ian.png diff --git a/website/assets/img/project_files/npcs/spring/npc_matt.png b/website/assets/img/project_files/npcs/spring/npc_matt.png new file mode 100644 index 0000000000..e129d6e43e Binary files /dev/null and b/website/assets/img/project_files/npcs/spring/npc_matt.png differ diff --git a/website/assets/img/project_files/npcs/spring/npc_timetravelers_active.png b/website/assets/img/project_files/npcs/spring/npc_timetravelers_active.png new file mode 100644 index 0000000000..1847fd8337 Binary files /dev/null and b/website/assets/img/project_files/npcs/spring/npc_timetravelers_active.png differ diff --git a/website/assets/sprites/css/index.css b/website/assets/sprites/css/index.css index d85a66e838..3c1c4ec371 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/spring/broad_armor_special_spring2017Healer.png b/website/assets/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2017Healer.png new file mode 100644 index 0000000000..f83f072439 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2017Mage.png b/website/assets/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2017Mage.png new file mode 100644 index 0000000000..bd94580360 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2017Rogue.png new file mode 100644 index 0000000000..13fd2dd63c Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2017Warrior.png new file mode 100644 index 0000000000..e87e2f3700 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2017Healer.png b/website/assets/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2017Healer.png new file mode 100644 index 0000000000..8060e37ad0 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2017Mage.png b/website/assets/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2017Mage.png new file mode 100644 index 0000000000..c6960183c6 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2017Rogue.png new file mode 100644 index 0000000000..6e89ebd1e1 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2017Warrior.png new file mode 100644 index 0000000000..ab73dbba01 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/head_special_spring2017Healer.png b/website/assets/sprites/spritesmith/gear/events/spring/head_special_spring2017Healer.png new file mode 100644 index 0000000000..f5654de2bb Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/head_special_spring2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/head_special_spring2017Mage.png b/website/assets/sprites/spritesmith/gear/events/spring/head_special_spring2017Mage.png new file mode 100644 index 0000000000..4c678c9d98 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/head_special_spring2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/head_special_spring2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/spring/head_special_spring2017Rogue.png new file mode 100644 index 0000000000..b1f20c484b Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/head_special_spring2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/head_special_spring2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/spring/head_special_spring2017Warrior.png new file mode 100644 index 0000000000..7c71cdf537 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/head_special_spring2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shield_special_spring2017Healer.png b/website/assets/sprites/spritesmith/gear/events/spring/shield_special_spring2017Healer.png new file mode 100644 index 0000000000..d0b72a26ad Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shield_special_spring2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shield_special_spring2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/spring/shield_special_spring2017Rogue.png new file mode 100644 index 0000000000..b6ce7dfd4d Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shield_special_spring2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shield_special_spring2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/spring/shield_special_spring2017Warrior.png new file mode 100644 index 0000000000..19db69f536 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shield_special_spring2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2017Healer.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2017Healer.png new file mode 100644 index 0000000000..a8e1863db0 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2017Mage.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2017Mage.png new file mode 100644 index 0000000000..f3f4723515 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2017Rogue.png new file mode 100644 index 0000000000..2d78d3631f Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2017Warrior.png new file mode 100644 index 0000000000..c3fc46f093 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2017Healer.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2017Healer.png new file mode 100644 index 0000000000..7f55be42b4 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2017Mage.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2017Mage.png new file mode 100644 index 0000000000..ec922606f5 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2017Rogue.png new file mode 100644 index 0000000000..6eb3e07b73 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2017Warrior.png new file mode 100644 index 0000000000..54e329daeb Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2017Healer.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2017Healer.png new file mode 100644 index 0000000000..def9d19e67 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2017Mage.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2017Mage.png new file mode 100644 index 0000000000..aaf01c9dbd Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2017Rogue.png new file mode 100644 index 0000000000..7ce0997aa9 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2017Warrior.png new file mode 100644 index 0000000000..9ffc434813 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2017Healer.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2017Healer.png new file mode 100644 index 0000000000..2692353786 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2017Rogue.png new file mode 100644 index 0000000000..784b3178a4 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2017Warrior.png new file mode 100644 index 0000000000..dfcfba2ebf Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2017Healer.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2017Healer.png new file mode 100644 index 0000000000..d53c74587b Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2017Mage.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2017Mage.png new file mode 100644 index 0000000000..678be1c688 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2017Rogue.png new file mode 100644 index 0000000000..f3f1f99d9d Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2017Warrior.png new file mode 100644 index 0000000000..56fee68a71 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2017Healer.png b/website/assets/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2017Healer.png new file mode 100644 index 0000000000..17bf69f58b Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2017Mage.png b/website/assets/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2017Mage.png new file mode 100644 index 0000000000..97c1d24f57 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2017Rogue.png new file mode 100644 index 0000000000..c193c1ef00 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2017Warrior.png new file mode 100644 index 0000000000..60d5022a19 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/weapon_special_spring2017Healer.png b/website/assets/sprites/spritesmith/gear/events/spring/weapon_special_spring2017Healer.png new file mode 100644 index 0000000000..777eeb57c4 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/weapon_special_spring2017Healer.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/weapon_special_spring2017Mage.png b/website/assets/sprites/spritesmith/gear/events/spring/weapon_special_spring2017Mage.png new file mode 100644 index 0000000000..3cf3b5f949 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/weapon_special_spring2017Mage.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/weapon_special_spring2017Rogue.png b/website/assets/sprites/spritesmith/gear/events/spring/weapon_special_spring2017Rogue.png new file mode 100644 index 0000000000..218b3ae974 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/weapon_special_spring2017Rogue.png differ diff --git a/website/assets/sprites/spritesmith/gear/events/spring/weapon_special_spring2017Warrior.png b/website/assets/sprites/spritesmith/gear/events/spring/weapon_special_spring2017Warrior.png new file mode 100644 index 0000000000..6eb6a040d2 Binary files /dev/null and b/website/assets/sprites/spritesmith/gear/events/spring/weapon_special_spring2017Warrior.png differ diff --git a/website/assets/sprites/spritesmith/npcs/npc_alex.png b/website/assets/sprites/spritesmith/npcs/npc_alex.png index 67b7476d33..8982854041 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..0fe6763311 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_ian.png b/website/assets/sprites/spritesmith/npcs/npc_ian.png new file mode 100644 index 0000000000..86860dfa1b Binary files /dev/null and b/website/assets/sprites/spritesmith/npcs/npc_ian.png differ diff --git a/website/assets/sprites/spritesmith/npcs/npc_matt.png b/website/assets/sprites/spritesmith/npcs/npc_matt.png index 2531f1084b..e129d6e43e 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..1847fd8337 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 bf18da469c..e1f811893e 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_pastel_skin_hair.png b/website/assets/sprites/spritesmith_large/promo/promo_pastel_skin_hair.png new file mode 100644 index 0000000000..64328e7824 Binary files /dev/null and b/website/assets/sprites/spritesmith_large/promo/promo_pastel_skin_hair.png differ diff --git a/website/assets/sprites/spritesmith_large/promo/promo_spring_classes_2017.png b/website/assets/sprites/spritesmith_large/promo/promo_spring_classes_2017.png new file mode 100644 index 0000000000..983667dbaa Binary files /dev/null and b/website/assets/sprites/spritesmith_large/promo/promo_spring_classes_2017.png differ diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index 8cd02b851e..25810399ac 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -213,6 +213,15 @@ "weaponSpecialWinter2017HealerText": "Sugar-Spun Wand", "weaponSpecialWinter2017HealerNotes": "This wand can reach into your dreams and bring you visions of dancing sugarplums. Increases Intelligence by <%= int %>. Limited Edition 2016-2017 Winter Gear.", + "weaponSpecialSpring2017RogueText": "Karrotana", + "weaponSpecialSpring2017RogueNotes": "These blades will make quick work of tasks, but also are handy for slicing vegetables! Yum! Increases Strength by <%= str %>. Limited Edition 2017 Spring Gear.", + "weaponSpecialSpring2017WarriorText": "Feathery Whip", + "weaponSpecialSpring2017WarriorNotes": "This mighty whip will tame the unruliest task. But.. It's also… So FUN AND DISTRACTING!! Increases Strength by <%= str %>. Limited Edition 2017 Spring Gear.", + "weaponSpecialSpring2017MageText": "Magic Fetching Stick", + "weaponSpecialSpring2017MageNotes": "When you're not crafting spells with it, you can throw it and then bring it back! What fun!! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2017 Spring Gear.", + "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.", + "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", @@ -470,6 +479,15 @@ "armorSpecialWinter2017HealerText": "Shimmer Petal Armor", "armorSpecialWinter2017HealerNotes": "Though soft, this armor of petals has fantastic protective power. Increases Constitution by <%= con %>. Limited Edition 2016-2017 Winter Gear.", + "armorSpecialSpring2017RogueText": "Sneaky Bunny Suit", + "armorSpecialSpring2017RogueNotes": "Soft but strong, this suit helps you move through gardens with extra stealth. Increases Perception by <%= per %>. Limited Edition 2017 Spring Gear.", + "armorSpecialSpring2017WarriorText": "Pawsome Armor", + "armorSpecialSpring2017WarriorNotes": "This fancy armor is as shiny as your finely groomed coat, but with added resistance to attack. Increases Constitution by <%= con %>. Limited Edition 2017 Spring Gear.", + "armorSpecialSpring2017MageText": "Canine Conjuror Robes", + "armorSpecialSpring2017MageNotes": "Magical by design, fluffy by choice. Increases Intelligence by <%= int %>. Limited Edition 2017 Spring Gear.", + "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.", + "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", @@ -776,6 +794,15 @@ "headSpecialWinter2017HealerText": "Sparkling Blossom Helm", "headSpecialWinter2017HealerNotes": "These glittering petals focus brainpower! Increases Intelligence by <%= int %>. Limited Edition 2016-2017 Winter Gear.", + "headSpecialSpring2017RogueText": "Sneaky Bunny Helm", + "headSpecialSpring2017RogueNotes": "This mask will prevent your cuteness from giving you away as you sneak up on Dailies (or clovers)! Increases Perception by <%= per %>. Limited Edition 2017 Spring Gear.", + "headSpecialSpring2017WarriorText": "Feline Helm", + "headSpecialSpring2017WarriorNotes": "Protect your adorable, fuzzy noggin with this finely decorated helm. Increases Strength by <%= str %>. Limited Edition 2017 Spring Gear.", + "headSpecialSpring2017MageText": "Canine Conjuror Hat", + "headSpecialSpring2017MageNotes": "This hat can help you cast mighty spells… Or you can just use it to summon tennis balls. Your choice. Increases Perception by <%= per %>. Limited Edition 2017 Spring Gear.", + "headSpecialSpring2017HealerText": "Petal Circlet", + "headSpecialSpring2017HealerNotes": "This delicate crown emits the comforting scent of new Spring blooms. Increases Intelligence by <%= int %>. Limited Edition 2017 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.", @@ -1040,6 +1067,13 @@ "shieldSpecialWinter2017HealerText": "Sugarplum Shield", "shieldSpecialWinter2017HealerNotes": "This fibrous armament will help protect you from even the sourest of tasks! Increases Constitution by <%= con %>. Limited Edition 2016-2017 Winter Gear.", + "shieldSpecialSpring2017RogueText": "Karrotana", + "shieldSpecialSpring2017RogueNotes": "These blades will make quick work of tasks, but also are handy for slicing vegetables! Yum! Increases Strength by <%= str %>. Limited Edition 2017 Spring Gear.", + "shieldSpecialSpring2017WarriorText": "Yarn Shield", + "shieldSpecialSpring2017WarriorNotes": "Every fiber of this shield is woven with protective spells! Try not to play with it (too much). Increases Constitution by <%= con %>. Limited Edition 2017 Spring Gear.", + "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.", + "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", @@ -1164,6 +1198,15 @@ "headAccessorySpecialSpring2016HealerText": "Purple Bunny Ears", "headAccessorySpecialSpring2016HealerNotes": "They stand like flags above the fray, letting others know where to run for help. Confers no benefit. Limited Edition 2016 Spring Gear.", + "headAccessorySpecialSpring2017RogueText": "Red Bunny Ears", + "headAccessorySpecialSpring2017RogueNotes": "No sounds will escape you thanks to these ears. Confers no benefit. Limited Edition 2017 Spring Gear.", + "headAccessorySpecialSpring2017WarriorText": "Blue Kitty Ears", + "headAccessorySpecialSpring2017WarriorNotes": "These ears can hear a bag of kitty treats open even in the din of battle! Confers no benefit. Limited Edition 2017 Spring Gear.", + "headAccessorySpecialSpring2017MageText": "Teal Dog Ears", + "headAccessorySpecialSpring2017MageNotes": "You can hear the magic in the air! Confers no benefit. Limited Edition 2017 Spring Gear.", + "headAccessorySpecialSpring2017HealerText": "Purple Mouse Ears", + "headAccessorySpecialSpring2017HealerNotes": "These ears will help you hear healing secrets. Confers no benefit. Limited Edition 2017 Spring Gear.", + "headAccessoryBearEarsText": "Bear Ears", "headAccessoryBearEarsNotes": "These ears make you look like a brave bear! Confers no benefit.", "headAccessoryCactusEarsText": "Cactus Ears", diff --git a/website/common/locales/en/limited.json b/website/common/locales/en/limited.json index f9c3092079..babeb0cd10 100644 --- a/website/common/locales/en/limited.json +++ b/website/common/locales/en/limited.json @@ -84,6 +84,10 @@ "stitchWitchSet": "Stitch Witch (Mage)", "potionerSet": "Potioner (Healer)", "battleRogueSet": "Bat-tle Rogue (Rogue)", + "springingBunnySet": "Springing Bunny (Healer)", + "grandMalkinSet": "Grand Malkin (Mage)", + "cleverDogSet": "Clever Dog (Rogue)", + "braveMouseSet": "Brave Mouse (Warrior)", "fallEventAvailability": "Available for purchase until October 31.", "winterEventAvailability": "Available for purchase until January 31.", "springEventAvailability": "Available for purchase until May 31.", diff --git a/website/common/script/content/constants.js b/website/common/script/content/constants.js index fe4634ab94..119de75666 100644 --- a/website/common/script/content/constants.js +++ b/website/common/script/content/constants.js @@ -27,6 +27,7 @@ export const EVENTS = { summer2016: { start: '2016-06-21', end: '2016-08-02' }, 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' }, }; 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 aa51be7ddf..df11e959cc 100644 --- a/website/common/script/content/gear/sets/special/index.js +++ b/website/common/script/content/gear/sets/special/index.js @@ -63,9 +63,6 @@ let armor = { notes: t('armorSpecialYetiNotes', { con: 9 }), con: 9, value: 90, - canBuy: () => { - return true; - }, }, ski: { event: EVENTS.winter, @@ -74,9 +71,6 @@ let armor = { notes: t('armorSpecialSkiNotes', { per: 15 }), per: 15, value: 90, - canBuy: () => { - return true; - }, }, candycane: { event: EVENTS.winter, @@ -85,9 +79,6 @@ let armor = { notes: t('armorSpecialCandycaneNotes', { int: 9 }), int: 9, value: 90, - canBuy: () => { - return true; - }, }, snowflake: { event: EVENTS.winter, @@ -96,9 +87,6 @@ let armor = { notes: t('armorSpecialSnowflakeNotes', { con: 15 }), con: 15, value: 90, - canBuy: () => { - return true; - }, }, birthday: { event: EVENTS.birthday, @@ -112,6 +100,9 @@ let armor = { notes: t('armorSpecialSpringRogueNotes', { per: 15 }), value: 90, per: 15, + canBuy: () => { + return true; + }, }, springWarrior: { event: EVENTS.spring, @@ -120,6 +111,9 @@ let armor = { notes: t('armorSpecialSpringWarriorNotes', { con: 9 }), value: 90, con: 9, + canBuy: () => { + return true; + }, }, springMage: { event: EVENTS.spring, @@ -128,6 +122,9 @@ let armor = { notes: t('armorSpecialSpringMageNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => { + return true; + }, }, springHealer: { event: EVENTS.spring, @@ -136,6 +133,9 @@ let armor = { notes: t('armorSpecialSpringHealerNotes', { con: 15 }), value: 90, con: 15, + canBuy: () => { + return true; + }, }, summerRogue: { event: EVENTS.summer, @@ -208,9 +208,6 @@ let armor = { notes: t('armorSpecialWinter2015RogueNotes', { per: 15 }), value: 90, per: 15, - canBuy: () => { - return true; - }, }, winter2015Warrior: { event: EVENTS.winter2015, @@ -219,9 +216,6 @@ let armor = { notes: t('armorSpecialWinter2015WarriorNotes', { con: 9 }), value: 90, con: 9, - canBuy: () => { - return true; - }, }, winter2015Mage: { event: EVENTS.winter2015, @@ -230,9 +224,6 @@ let armor = { notes: t('armorSpecialWinter2015MageNotes', { int: 9 }), value: 90, int: 9, - canBuy: () => { - return true; - }, }, winter2015Healer: { event: EVENTS.winter2015, @@ -241,9 +232,6 @@ let armor = { notes: t('armorSpecialWinter2015HealerNotes', { con: 15 }), value: 90, con: 15, - canBuy: () => { - return true; - }, }, birthday2015: { text: t('armorSpecialBirthday2015Text'), @@ -258,6 +246,9 @@ let armor = { notes: t('armorSpecialSpring2015RogueNotes', { per: 15 }), value: 90, per: 15, + canBuy: () => { + return true; + }, }, spring2015Warrior: { event: EVENTS.spring2015, @@ -266,6 +257,9 @@ let armor = { notes: t('armorSpecialSpring2015WarriorNotes', { con: 9 }), value: 90, con: 9, + canBuy: () => { + return true; + }, }, spring2015Mage: { event: EVENTS.spring2015, @@ -274,6 +268,9 @@ let armor = { notes: t('armorSpecialSpring2015MageNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => { + return true; + }, }, spring2015Healer: { event: EVENTS.spring2015, @@ -282,6 +279,9 @@ let armor = { notes: t('armorSpecialSpring2015HealerNotes', { con: 15 }), value: 90, con: 15, + canBuy: () => { + return true; + }, }, summer2015Rogue: { event: EVENTS.summer2015, @@ -360,9 +360,6 @@ let armor = { notes: t('armorSpecialWinter2016RogueNotes', { per: 15 }), value: 90, per: 15, - canBuy: () => { - return true; - }, }, winter2016Warrior: { event: EVENTS.winter2016, @@ -371,9 +368,6 @@ let armor = { notes: t('armorSpecialWinter2016WarriorNotes', { con: 9 }), value: 90, con: 9, - canBuy: () => { - return true; - }, }, winter2016Mage: { event: EVENTS.winter2016, @@ -382,9 +376,6 @@ let armor = { notes: t('armorSpecialWinter2016MageNotes', { int: 9 }), value: 90, int: 9, - canBuy: () => { - return true; - }, }, winter2016Healer: { event: EVENTS.winter2016, @@ -393,9 +384,6 @@ let armor = { notes: t('armorSpecialWinter2016HealerNotes', { con: 15 }), value: 90, con: 15, - canBuy: () => { - return true; - }, }, birthday2016: { text: t('armorSpecialBirthday2016Text'), @@ -410,6 +398,9 @@ let armor = { notes: t('armorSpecialSpring2016RogueNotes', { per: 15 }), value: 90, per: 15, + canBuy: () => { + return true; + }, }, spring2016Warrior: { event: EVENTS.spring2016, @@ -418,6 +409,9 @@ let armor = { notes: t('armorSpecialSpring2016WarriorNotes', { con: 9 }), value: 90, con: 9, + canBuy: () => { + return true; + }, }, spring2016Mage: { event: EVENTS.spring2016, @@ -426,6 +420,9 @@ let armor = { notes: t('armorSpecialSpring2016MageNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => { + return true; + }, }, spring2016Healer: { event: EVENTS.spring2016, @@ -434,6 +431,9 @@ let armor = { notes: t('armorSpecialSpring2016HealerNotes', { con: 15 }), value: 90, con: 15, + canBuy: () => { + return true; + }, }, summer2016Rogue: { event: EVENTS.summer2016, @@ -537,6 +537,38 @@ let armor = { value: 0, canOwn: ownsItem('armor_special_birthday2017'), }, + spring2017Rogue: { + event: EVENTS.spring2017, + specialClass: 'rogue', + text: t('armorSpecialSpring2017RogueText'), + notes: t('armorSpecialSpring2017RogueNotes', { per: 15 }), + value: 90, + per: 15, + }, + spring2017Warrior: { + event: EVENTS.spring2017, + specialClass: 'warrior', + text: t('armorSpecialSpring2017WarriorText'), + notes: t('armorSpecialSpring2017WarriorNotes', { con: 9 }), + value: 90, + con: 9, + }, + spring2017Mage: { + event: EVENTS.spring2017, + specialClass: 'wizard', + text: t('armorSpecialSpring2017MageText'), + notes: t('armorSpecialSpring2017MageNotes', { int: 9 }), + value: 90, + int: 9, + }, + spring2017Healer: { + event: EVENTS.spring2017, + specialClass: 'healer', + text: t('armorSpecialSpring2017HealerText'), + notes: t('armorSpecialSpring2017HealerNotes', { con: 15 }), + value: 90, + con: 15, + }, }; let back = { @@ -724,9 +756,6 @@ let head = { notes: t('headSpecialYetiNotes', { str: 9 }), str: 9, value: 60, - canBuy: () => { - return true; - }, }, ski: { event: EVENTS.winter, @@ -735,9 +764,6 @@ let head = { notes: t('headSpecialSkiNotes', { per: 9 }), per: 9, value: 60, - canBuy: () => { - return true; - }, }, candycane: { event: EVENTS.winter, @@ -746,9 +772,6 @@ let head = { notes: t('headSpecialCandycaneNotes', { per: 7 }), per: 7, value: 60, - canBuy: () => { - return true; - }, }, snowflake: { event: EVENTS.winter, @@ -757,9 +780,6 @@ let head = { notes: t('headSpecialSnowflakeNotes', { int: 7 }), int: 7, value: 60, - canBuy: () => { - return true; - }, }, springRogue: { event: EVENTS.spring, @@ -768,6 +788,9 @@ let head = { notes: t('headSpecialSpringRogueNotes', { per: 9 }), value: 60, per: 9, + canBuy: () => { + return true; + }, }, springWarrior: { event: EVENTS.spring, @@ -776,6 +799,9 @@ let head = { notes: t('headSpecialSpringWarriorNotes', { str: 9 }), value: 60, str: 9, + canBuy: () => { + return true; + }, }, springMage: { event: EVENTS.spring, @@ -784,6 +810,9 @@ let head = { notes: t('headSpecialSpringMageNotes', { per: 7 }), value: 60, per: 7, + canBuy: () => { + return true; + }, }, springHealer: { event: EVENTS.spring, @@ -792,6 +821,9 @@ let head = { notes: t('headSpecialSpringHealerNotes', { int: 7 }), value: 60, int: 7, + canBuy: () => { + return true; + }, }, summerRogue: { event: EVENTS.summer, @@ -864,9 +896,6 @@ let head = { notes: t('headSpecialWinter2015RogueNotes', { per: 9 }), value: 60, per: 9, - canBuy: () => { - return true; - }, }, winter2015Warrior: { event: EVENTS.winter2015, @@ -875,9 +904,6 @@ let head = { notes: t('headSpecialWinter2015WarriorNotes', { str: 9 }), value: 60, str: 9, - canBuy: () => { - return true; - }, }, winter2015Mage: { event: EVENTS.winter2015, @@ -886,9 +912,6 @@ let head = { notes: t('headSpecialWinter2015MageNotes', { per: 7 }), value: 60, per: 7, - canBuy: () => { - return true; - }, }, winter2015Healer: { event: EVENTS.winter2015, @@ -897,9 +920,6 @@ let head = { notes: t('headSpecialWinter2015HealerNotes', { int: 7 }), value: 60, int: 7, - canBuy: () => { - return true; - }, }, nye2014: { text: t('headSpecialNye2014Text'), @@ -914,6 +934,9 @@ let head = { notes: t('headSpecialSpring2015RogueNotes', { per: 9 }), value: 60, per: 9, + canBuy: () => { + return true; + }, }, spring2015Warrior: { event: EVENTS.spring2015, @@ -922,6 +945,9 @@ let head = { notes: t('headSpecialSpring2015WarriorNotes', { str: 9 }), value: 60, str: 9, + canBuy: () => { + return true; + }, }, spring2015Mage: { event: EVENTS.spring2015, @@ -930,6 +956,9 @@ let head = { notes: t('headSpecialSpring2015MageNotes', { per: 7 }), value: 60, per: 7, + canBuy: () => { + return true; + }, }, spring2015Healer: { event: EVENTS.spring2015, @@ -938,6 +967,9 @@ let head = { notes: t('headSpecialSpring2015HealerNotes', { int: 7 }), value: 60, int: 7, + canBuy: () => { + return true; + }, }, summer2015Rogue: { event: EVENTS.summer2015, @@ -1016,9 +1048,6 @@ let head = { notes: t('headSpecialWinter2016RogueNotes', { per: 9 }), value: 60, per: 9, - canBuy: () => { - return true; - }, }, winter2016Warrior: { event: EVENTS.winter2016, @@ -1027,9 +1056,6 @@ let head = { notes: t('headSpecialWinter2016WarriorNotes', { str: 9 }), value: 60, str: 9, - canBuy: () => { - return true; - }, }, winter2016Mage: { event: EVENTS.winter2016, @@ -1038,9 +1064,6 @@ let head = { notes: t('headSpecialWinter2016MageNotes', { per: 7 }), value: 60, per: 7, - canBuy: () => { - return true; - }, }, winter2016Healer: { event: EVENTS.winter2016, @@ -1049,9 +1072,6 @@ let head = { notes: t('headSpecialWinter2016HealerNotes', { int: 7 }), value: 60, int: 7, - canBuy: () => { - return true; - }, }, nye2015: { text: t('headSpecialNye2015Text'), @@ -1066,6 +1086,9 @@ let head = { notes: t('headSpecialSpring2016RogueNotes', { per: 9 }), value: 60, per: 9, + canBuy: () => { + return true; + }, }, spring2016Warrior: { event: EVENTS.spring2016, @@ -1074,6 +1097,9 @@ let head = { notes: t('headSpecialSpring2016WarriorNotes', { str: 9 }), value: 60, str: 9, + canBuy: () => { + return true; + }, }, spring2016Mage: { event: EVENTS.spring2016, @@ -1082,6 +1108,9 @@ let head = { notes: t('headSpecialSpring2016MageNotes', { per: 7 }), value: 60, per: 7, + canBuy: () => { + return true; + }, }, spring2016Healer: { event: EVENTS.spring2016, @@ -1090,6 +1119,9 @@ let head = { notes: t('headSpecialSpring2016HealerNotes', { int: 7 }), value: 60, int: 7, + canBuy: () => { + return true; + }, }, summer2016Rogue: { event: EVENTS.summer2016, @@ -1193,6 +1225,38 @@ let head = { value: 0, canOwn: ownsItem('head_special_nye2016'), }, + spring2017Rogue: { + event: EVENTS.spring2017, + specialClass: 'rogue', + text: t('headSpecialSpring2017RogueText'), + notes: t('headSpecialSpring2017RogueNotes', { per: 9 }), + value: 60, + per: 9, + }, + spring2017Warrior: { + event: EVENTS.spring2017, + specialClass: 'warrior', + text: t('headSpecialSpring2017WarriorText'), + notes: t('headSpecialSpring2017WarriorNotes', { str: 9 }), + value: 60, + str: 9, + }, + spring2017Mage: { + event: EVENTS.spring2017, + specialClass: 'wizard', + text: t('headSpecialSpring2017MageText'), + notes: t('headSpecialSpring2017MageNotes', { per: 7 }), + value: 60, + per: 7, + }, + spring2017Healer: { + event: EVENTS.spring2017, + specialClass: 'healer', + text: t('headSpecialSpring2017HealerText'), + notes: t('headSpecialSpring2017HealerNotes', { int: 7 }), + value: 60, + int: 7, + }, }; let headAccessory = { @@ -1202,6 +1266,9 @@ let headAccessory = { text: t('headAccessorySpecialSpringRogueText'), notes: t('headAccessorySpecialSpringRogueNotes'), value: 20, + canBuy: () => { + return true; + }, }, springWarrior: { event: EVENTS.spring, @@ -1209,6 +1276,9 @@ let headAccessory = { text: t('headAccessorySpecialSpringWarriorText'), notes: t('headAccessorySpecialSpringWarriorNotes'), value: 20, + canBuy: () => { + return true; + }, }, springMage: { event: EVENTS.spring, @@ -1216,6 +1286,9 @@ let headAccessory = { text: t('headAccessorySpecialSpringMageText'), notes: t('headAccessorySpecialSpringMageNotes'), value: 20, + canBuy: () => { + return true; + }, }, springHealer: { event: EVENTS.spring, @@ -1223,6 +1296,9 @@ let headAccessory = { text: t('headAccessorySpecialSpringHealerText'), notes: t('headAccessorySpecialSpringHealerNotes'), value: 20, + canBuy: () => { + return true; + }, }, spring2015Rogue: { event: EVENTS.spring2015, @@ -1230,6 +1306,9 @@ let headAccessory = { text: t('headAccessorySpecialSpring2015RogueText'), notes: t('headAccessorySpecialSpring2015RogueNotes'), value: 20, + canBuy: () => { + return true; + }, }, spring2015Warrior: { event: EVENTS.spring2015, @@ -1237,6 +1316,9 @@ let headAccessory = { text: t('headAccessorySpecialSpring2015WarriorText'), notes: t('headAccessorySpecialSpring2015WarriorNotes'), value: 20, + canBuy: () => { + return true; + }, }, spring2015Mage: { event: EVENTS.spring2015, @@ -1244,6 +1326,9 @@ let headAccessory = { text: t('headAccessorySpecialSpring2015MageText'), notes: t('headAccessorySpecialSpring2015MageNotes'), value: 20, + canBuy: () => { + return true; + }, }, spring2015Healer: { event: EVENTS.spring2015, @@ -1251,6 +1336,9 @@ let headAccessory = { text: t('headAccessorySpecialSpring2015HealerText'), notes: t('headAccessorySpecialSpring2015HealerNotes'), value: 20, + canBuy: () => { + return true; + }, }, bearEars: { gearSet: 'animal', @@ -1338,6 +1426,9 @@ let headAccessory = { text: t('headAccessorySpecialSpring2016RogueText'), notes: t('headAccessorySpecialSpring2016RogueNotes'), value: 20, + canBuy: () => { + return true; + }, }, spring2016Warrior: { event: EVENTS.spring2016, @@ -1345,6 +1436,9 @@ let headAccessory = { text: t('headAccessorySpecialSpring2016WarriorText'), notes: t('headAccessorySpecialSpring2016WarriorNotes'), value: 20, + canBuy: () => { + return true; + }, }, spring2016Mage: { event: EVENTS.spring2016, @@ -1352,6 +1446,9 @@ let headAccessory = { text: t('headAccessorySpecialSpring2016MageText'), notes: t('headAccessorySpecialSpring2016MageNotes'), value: 20, + canBuy: () => { + return true; + }, }, spring2016Healer: { event: EVENTS.spring2016, @@ -1359,6 +1456,37 @@ let headAccessory = { text: t('headAccessorySpecialSpring2016HealerText'), notes: t('headAccessorySpecialSpring2016HealerNotes'), value: 20, + canBuy: () => { + return true; + }, + }, + spring2017Rogue: { + event: EVENTS.spring2017, + specialClass: 'rogue', + text: t('headAccessorySpecialSpring2017RogueText'), + notes: t('headAccessorySpecialSpring2017RogueNotes'), + value: 20, + }, + spring2017Warrior: { + event: EVENTS.spring2017, + specialClass: 'warrior', + text: t('headAccessorySpecialSpring2017WarriorText'), + notes: t('headAccessorySpecialSpring2017WarriorNotes'), + value: 20, + }, + spring2017Mage: { + event: EVENTS.spring2017, + specialClass: 'wizard', + text: t('headAccessorySpecialSpring2017MageText'), + notes: t('headAccessorySpecialSpring2017MageNotes'), + value: 20, + }, + spring2017Healer: { + event: EVENTS.spring2017, + specialClass: 'healer', + text: t('headAccessorySpecialSpring2017HealerText'), + notes: t('headAccessorySpecialSpring2017HealerNotes'), + value: 20, }, }; @@ -1402,9 +1530,6 @@ let shield = { notes: t('shieldSpecialYetiNotes', { con: 7 }), con: 7, value: 70, - canBuy: () => { - return true; - }, }, ski: { event: EVENTS.winter, @@ -1413,9 +1538,6 @@ let shield = { notes: t('weaponSpecialSkiNotes', { str: 8 }), str: 8, value: 90, - canBuy: () => { - return true; - }, }, snowflake: { event: EVENTS.winter, @@ -1424,9 +1546,6 @@ let shield = { notes: t('shieldSpecialSnowflakeNotes', { con: 9 }), con: 9, value: 70, - canBuy: () => { - return true; - }, }, springRogue: { event: EVENTS.spring, @@ -1435,6 +1554,9 @@ let shield = { notes: t('shieldSpecialSpringRogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => { + return true; + }, }, springWarrior: { event: EVENTS.spring, @@ -1443,6 +1565,9 @@ let shield = { notes: t('shieldSpecialSpringWarriorNotes', { con: 7 }), value: 70, con: 7, + canBuy: () => { + return true; + }, }, springHealer: { event: EVENTS.spring, @@ -1451,6 +1576,9 @@ let shield = { notes: t('shieldSpecialSpringHealerNotes', { con: 9 }), value: 70, con: 9, + canBuy: () => { + return true; + }, }, summerRogue: { event: EVENTS.summer, @@ -1507,9 +1635,6 @@ let shield = { notes: t('shieldSpecialWinter2015RogueNotes', { str: 8 }), value: 80, str: 8, - canBuy: () => { - return true; - }, }, winter2015Warrior: { event: EVENTS.winter2015, @@ -1518,9 +1643,6 @@ let shield = { notes: t('shieldSpecialWinter2015WarriorNotes', { con: 7 }), value: 70, con: 7, - canBuy: () => { - return true; - }, }, winter2015Healer: { event: EVENTS.winter2015, @@ -1529,9 +1651,6 @@ let shield = { notes: t('shieldSpecialWinter2015HealerNotes', { con: 9 }), value: 70, con: 9, - canBuy: () => { - return true; - }, }, spring2015Rogue: { event: EVENTS.spring2015, @@ -1540,6 +1659,9 @@ let shield = { notes: t('shieldSpecialSpring2015RogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => { + return true; + }, }, spring2015Warrior: { event: EVENTS.spring2015, @@ -1548,6 +1670,9 @@ let shield = { notes: t('shieldSpecialSpring2015WarriorNotes', { con: 7 }), value: 70, con: 7, + canBuy: () => { + return true; + }, }, spring2015Healer: { event: EVENTS.spring2015, @@ -1556,6 +1681,9 @@ let shield = { notes: t('shieldSpecialSpring2015HealerNotes', { con: 9 }), value: 70, con: 9, + canBuy: () => { + return true; + }, }, summer2015Rogue: { event: EVENTS.summer2015, @@ -1612,9 +1740,6 @@ let shield = { notes: t('shieldSpecialWinter2016RogueNotes', { str: 8 }), value: 80, str: 8, - canBuy: () => { - return true; - }, }, winter2016Warrior: { event: EVENTS.winter2016, @@ -1623,9 +1748,6 @@ let shield = { notes: t('shieldSpecialWinter2016WarriorNotes', { con: 7 }), value: 70, con: 7, - canBuy: () => { - return true; - }, }, winter2016Healer: { event: EVENTS.winter2016, @@ -1634,9 +1756,6 @@ let shield = { notes: t('shieldSpecialWinter2016HealerNotes', { con: 9 }), value: 70, con: 9, - canBuy: () => { - return true; - }, }, spring2016Rogue: { event: EVENTS.spring2016, @@ -1645,6 +1764,9 @@ let shield = { notes: t('shieldSpecialSpring2016RogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => { + return true; + }, }, spring2016Warrior: { event: EVENTS.spring2016, @@ -1653,6 +1775,9 @@ let shield = { notes: t('shieldSpecialSpring2016WarriorNotes', { con: 7 }), value: 70, con: 7, + canBuy: () => { + return true; + }, }, spring2016Healer: { event: EVENTS.spring2016, @@ -1661,6 +1786,9 @@ let shield = { notes: t('shieldSpecialSpring2016HealerNotes', { con: 9 }), value: 70, con: 9, + canBuy: () => { + return true; + }, }, summer2016Rogue: { event: EVENTS.summer2016, @@ -1734,6 +1862,30 @@ let shield = { value: 70, con: 9, }, + spring2017Rogue: { + event: EVENTS.spring2017, + specialClass: 'rogue', + text: t('shieldSpecialSpring2017RogueText'), + notes: t('shieldSpecialSpring2017RogueNotes', { str: 8 }), + value: 80, + str: 8, + }, + spring2017Warrior: { + event: EVENTS.spring2017, + specialClass: 'warrior', + text: t('shieldSpecialSpring2017WarriorText'), + notes: t('shieldSpecialSpring2017WarriorNotes', { con: 7 }), + value: 70, + con: 7, + }, + spring2017Healer: { + event: EVENTS.spring2017, + specialClass: 'healer', + text: t('shieldSpecialSpring2017HealerText'), + notes: t('shieldSpecialSpring2017HealerNotes', { con: 9 }), + value: 70, + con: 9, + }, }; let weapon = { @@ -1798,9 +1950,6 @@ let weapon = { notes: t('weaponSpecialYetiNotes', { str: 15 }), str: 15, value: 90, - canBuy: () => { - return true; - }, }, ski: { event: EVENTS.winter, @@ -1809,9 +1958,6 @@ let weapon = { notes: t('weaponSpecialSkiNotes', { str: 8 }), str: 8, value: 90, - canBuy: () => { - return true; - }, }, candycane: { event: EVENTS.winter, @@ -1822,9 +1968,6 @@ let weapon = { int: 15, per: 7, value: 160, - canBuy: () => { - return true; - }, }, snowflake: { event: EVENTS.winter, @@ -1833,9 +1976,6 @@ let weapon = { notes: t('weaponSpecialSnowflakeNotes', { int: 9 }), int: 9, value: 90, - canBuy: () => { - return true; - }, }, springRogue: { event: EVENTS.spring, @@ -1844,6 +1984,9 @@ let weapon = { notes: t('weaponSpecialSpringRogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => { + return true; + }, }, springWarrior: { event: EVENTS.spring, @@ -1852,6 +1995,9 @@ let weapon = { notes: t('weaponSpecialSpringWarriorNotes', { str: 15 }), value: 90, str: 15, + canBuy: () => { + return true; + }, }, springMage: { event: EVENTS.spring, @@ -1862,6 +2008,9 @@ let weapon = { value: 160, int: 15, per: 7, + canBuy: () => { + return true; + }, }, springHealer: { event: EVENTS.spring, @@ -1870,6 +2019,9 @@ let weapon = { notes: t('weaponSpecialSpringHealerNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => { + return true; + }, }, summerRogue: { event: EVENTS.summer, @@ -1946,9 +2098,6 @@ let weapon = { notes: t('weaponSpecialWinter2015RogueNotes', { str: 8 }), value: 80, str: 8, - canBuy: () => { - return true; - }, }, winter2015Warrior: { event: EVENTS.winter2015, @@ -1957,9 +2106,6 @@ let weapon = { notes: t('weaponSpecialWinter2015WarriorNotes', { str: 15 }), value: 90, str: 15, - canBuy: () => { - return true; - }, }, winter2015Mage: { event: EVENTS.winter2015, @@ -1970,9 +2116,6 @@ let weapon = { value: 160, int: 15, per: 7, - canBuy: () => { - return true; - }, }, winter2015Healer: { event: EVENTS.winter2015, @@ -1981,9 +2124,6 @@ let weapon = { notes: t('weaponSpecialWinter2015HealerNotes', { int: 9 }), value: 90, int: 9, - canBuy: () => { - return true; - }, }, spring2015Rogue: { event: EVENTS.spring2015, @@ -1992,6 +2132,9 @@ let weapon = { notes: t('weaponSpecialSpring2015RogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => { + return true; + }, }, spring2015Warrior: { event: EVENTS.spring2015, @@ -2000,6 +2143,9 @@ let weapon = { notes: t('weaponSpecialSpring2015WarriorNotes', { str: 15 }), value: 90, str: 15, + canBuy: () => { + return true; + }, }, spring2015Mage: { event: EVENTS.spring2015, @@ -2010,6 +2156,9 @@ let weapon = { value: 160, int: 15, per: 7, + canBuy: () => { + return true; + }, }, spring2015Healer: { event: EVENTS.spring2015, @@ -2018,6 +2167,9 @@ let weapon = { notes: t('weaponSpecialSpring2015HealerNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => { + return true; + }, }, summer2015Rogue: { event: EVENTS.summer2015, @@ -2094,9 +2246,6 @@ let weapon = { notes: t('weaponSpecialWinter2016RogueNotes', { str: 8 }), value: 80, str: 8, - canBuy: () => { - return true; - }, }, winter2016Warrior: { event: EVENTS.winter2016, @@ -2105,9 +2254,6 @@ let weapon = { notes: t('weaponSpecialWinter2016WarriorNotes', { str: 15 }), value: 90, str: 15, - canBuy: () => { - return true; - }, }, winter2016Mage: { event: EVENTS.winter2016, @@ -2118,9 +2264,6 @@ let weapon = { value: 160, int: 15, per: 7, - canBuy: () => { - return true; - }, }, winter2016Healer: { event: EVENTS.winter2016, @@ -2129,9 +2272,6 @@ let weapon = { notes: t('weaponSpecialWinter2016HealerNotes', { int: 9 }), value: 90, int: 9, - canBuy: () => { - return true; - }, }, spring2016Rogue: { event: EVENTS.spring2016, @@ -2140,6 +2280,9 @@ let weapon = { notes: t('weaponSpecialSpring2016RogueNotes', { str: 8 }), value: 80, str: 8, + canBuy: () => { + return true; + }, }, spring2016Warrior: { event: EVENTS.spring2016, @@ -2148,6 +2291,9 @@ let weapon = { notes: t('weaponSpecialSpring2016WarriorNotes', { str: 15 }), value: 90, str: 15, + canBuy: () => { + return true; + }, }, spring2016Mage: { event: EVENTS.spring2016, @@ -2158,6 +2304,9 @@ let weapon = { value: 160, int: 15, per: 7, + canBuy: () => { + return true; + }, }, spring2016Healer: { event: EVENTS.spring2016, @@ -2166,6 +2315,9 @@ let weapon = { notes: t('weaponSpecialSpring2016HealerNotes', { int: 9 }), value: 90, int: 9, + canBuy: () => { + return true; + }, }, summer2016Rogue: { event: EVENTS.summer2016, @@ -2269,6 +2421,40 @@ let weapon = { value: 90, int: 9, }, + spring2017Rogue: { + event: EVENTS.spring2017, + specialClass: 'rogue', + text: t('weaponSpecialSpring2017RogueText'), + notes: t('weaponSpecialSpring2017RogueNotes', { str: 8 }), + value: 80, + str: 8, + }, + spring2017Warrior: { + event: EVENTS.spring2017, + specialClass: 'warrior', + text: t('weaponSpecialSpring2017WarriorText'), + notes: t('weaponSpecialSpring2017WarriorNotes', { str: 15 }), + value: 90, + str: 15, + }, + spring2017Mage: { + event: EVENTS.spring2017, + specialClass: 'wizard', + twoHanded: true, + text: t('weaponSpecialSpring2017MageText'), + notes: t('weaponSpecialSpring2017MageNotes', { int: 15, per: 7 }), + value: 160, + int: 15, + per: 7, + }, + spring2017Healer: { + event: EVENTS.spring2017, + specialClass: 'healer', + text: t('weaponSpecialSpring2017HealerText'), + notes: t('weaponSpecialSpring2017HealerNotes', { 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 776775e1c4..5ffb4fc732 100644 --- a/website/common/script/libs/shops.js +++ b/website/common/script/libs/shops.js @@ -220,6 +220,18 @@ shops.getTimeTravelersCategories = function getTimeTravelersCategories (user, la // }; shops.getSeasonalShopCategories = function getSeasonalShopCategories (user, language) { const AVAILABLE_SETS = { + springHealer: i18n.t('lovingPupSet', language), + springMage: i18n.t('magicMouseSet', language), + springRogue: i18n.t('stealthyKittySet', language), + springWarrior: i18n.t('mightyBunnySet', language), + spring2015Healer: i18n.t('comfortingKittySet', language), + spring2015Mage: i18n.t('magicianBunnySet', language), + spring2015Rogue: i18n.t('sneakySqueakerSet', language), + spring2015Warrior: i18n.t('bewareDogSet', language), + spring2016Healer: i18n.t('springingBunnySet', language), + spring2016Mage: i18n.t('grandMalkinSet', language), + spring2016Rogue: i18n.t('cleverDogSet', language), + spring2016Warrior: i18n.t('braveMouseSet', language), }; const AVAILABLE_SPELLS = [ diff --git a/website/server/controllers/api-v3/shops.js b/website/server/controllers/api-v3/shops.js index 4eded39970..7a356e9ace 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('seasonalShopText'), + 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..509cdaa9e7 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('seasonalShopText') + p(ng-if='env.worldDmg.seasonalShop')!=env.t('seasonalShopText') li.customize-menu.inventory-gear menu.pets-menu(label='{{category.text}}', ng-repeat='category in seasonalShopCategories') diff --git a/website/views/options/profile/index.jade b/website/views/options/profile/index.jade index d8b2fdd21f..5719048da5 100644 --- a/website/views/options/profile/index.jade +++ b/website/views/options/profile/index.jade @@ -99,7 +99,7 @@ mixin customizeProfile(mobile) each color in ['pblue','pgreen','porange','ppink','ppurple','pyellow'] button(type='button', ng-if='user.purchased.hair.color.#{color}', class='customize-option hair hair_bangs_1_#{color}', ng-click='unlock("hair.color.#{color}")', ng-class='{selectableInventory: user.preferences.hair.color == "#{color}"}') +buyPref('hair.color', ['rainbow','yellow','green','purple','blue','TRUred'], 'rainbowColors') - +buyPref('hair.color', ['pblue2','pgreen2','porange2','ppink2','ppurple2','pyellow2'], 'shimmerColors', 'disabled') + +buyPref('hair.color', ['pblue2','pgreen2','porange2','ppink2','ppurple2','pyellow2'], 'shimmerColors') +buyPref('hair.color', ['candycorn','ghostwhite','halloween','midnight','pumpkin','zombie'], 'hauntedColors', 'disabled') +buyPref('hair.color', ['aurora','festive','hollygreen','peppermint','snowy','winterstar'], 'winteryColors', 'disabled') @@ -173,7 +173,7 @@ mixin customizeProfile(mobile) +buyPref('skin', ['bear','cactus','fox','lion','panda','pig','tiger','wolf'], 'animalSkins') // Seasonal event skins. Note that Spooky Skins are a legacy set and should always be disabled for purchase - +buyPref('skin', ['pastelPink','pastelOrange','pastelYellow','pastelGreen','pastelBlue','pastelPurple','pastelRainbowChevron','pastelRainbowDiagonal'], 'pastelSkins', 'disabled') + +buyPref('skin', ['pastelPink','pastelOrange','pastelYellow','pastelGreen','pastelBlue','pastelPurple','pastelRainbowChevron','pastelRainbowDiagonal'], 'pastelSkins') +buyPref('skin', ['monster','pumpkin','skeleton','zombie','ghost','shadow'], 'spookySkins', 'disabled') +buyPref('skin', ['candycorn','ogre','pumpkin2','reptile','shadow2','skeleton2','transparent','zombie2'], 'supernaturalSkins', 'disabled') +buyPref('skin', ['clownfish','deepocean','merblue','mergold','mergreen','merruby','shark','tropicalwater'], 'splashySkins', 'disabled') @@ -205,4 +205,4 @@ script(id='partials/options.profile.html', type="text/ng-template") .tab-content .tab-pane.active - div(ui-view) \ No newline at end of file + div(ui-view) diff --git a/website/views/shared/modals/classes.jade b/website/views/shared/modals/classes.jade index 754d6f31f0..cab3645448 100644 --- a/website/views/shared/modals/classes.jade +++ b/website/views/shared/modals/classes.jade @@ -9,57 +9,61 @@ script(type='text/ng-template', id='modals/chooseClass.html') figure.herobox(ng-class='{"selected-class": selectedClass=="warrior"}') .character-sprites span(class='skin_{{user.preferences.skin}}') - span(class='{{user.preferences.size}}_armor_warrior_5') + span(class='{{user.preferences.size}}_armor_special_spring2017Warrior') span(class='head_0') span(class='hair_base_{{user.preferences.hair.base}}_{{user.preferences.hair.color}}') span(class='hair_bangs_{{user.preferences.hair.bangs}}_{{user.preferences.hair.color}}') span(class='hair_beard_{{user.preferences.hair.beard}}_{{user.preferences.hair.color}}') span(class='hair_mustache_{{user.preferences.hair.mustache}}_{{user.preferences.hair.color}}') - span(class='head_warrior_5') - span(class='shield_warrior_5') - span(class='weapon_warrior_6') + span(class='head_special_spring2017Warrior') + span(class='headAccessory_special_spring2017Warrior') + span(class='shield_special_spring2017Warrior') + span(class='weapon_special_spring2017Warrior') .col-md-3(ng-click='selectedClass = "wizard"') h5!=env.t('mageWiki') figure.herobox(ng-class='{"selected-class": selectedClass=="wizard"}') .character-sprites span(class='skin_{{user.preferences.skin}}') - span(class='{{user.preferences.size}}_armor_wizard_5') + span(class='{{user.preferences.size}}_armor_special_spring2017Mage') span(class='head_0') span(class='hair_base_{{user.preferences.hair.base}}_{{user.preferences.hair.color}}') span(class='hair_bangs_{{user.preferences.hair.bangs}}_{{user.preferences.hair.color}}') span(class='hair_beard_{{user.preferences.hair.beard}}_{{user.preferences.hair.color}}') span(class='hair_mustache_{{user.preferences.hair.mustache}}_{{user.preferences.hair.color}}') - span(class='head_wizard_5') - span(class='shield_wizard_5') - span(class='weapon_wizard_6') + span(class='head_special_spring2017Mage') + span(class='headAccessory_special_spring2017Mage') + span(class='shield_special_spring2017Mage') + span(class='weapon_special_spring2017Mage') .col-md-3(ng-click='selectedClass = "rogue"') h5!=env.t('rogueWiki') figure.herobox(ng-class='{"selected-class": selectedClass=="rogue"}') .character-sprites span(class='skin_{{user.preferences.skin}}') - span(class='{{user.preferences.size}}_armor_rogue_5') + span(class='{{user.preferences.size}}_armor_special_spring2017Rogue') span(class='head_0') span(class='hair_base_{{user.preferences.hair.base}}_{{user.preferences.hair.color}}') span(class='hair_bangs_{{user.preferences.hair.bangs}}_{{user.preferences.hair.color}}') span(class='hair_beard_{{user.preferences.hair.beard}}_{{user.preferences.hair.color}}') span(class='hair_mustache_{{user.preferences.hair.mustache}}_{{user.preferences.hair.color}}') - span(class='head_rogue_5') - span(class='shield_rogue_6') - span(class='weapon_rogue_6') + span(class='head_special_spring2017Rogue') + span(class='headAccessory_special_spring2017Rogue') + span(class='shield_special_spring2017Rogue') + span(class='weapon_special_spring2017Rogue') .col-md-3(ng-click='selectedClass = "healer"') h5!=env.t('healerWiki') figure.herobox(ng-class='{"selected-class": selectedClass=="healer"}') .character-sprites span(class='skin_{{user.preferences.skin}}') - span(class='{{user.preferences.size}}_armor_healer_5') + span(class='{{user.preferences.size}}_armor_special_spring2017Healer') span(class='head_0') span(class='hair_base_{{user.preferences.hair.base}}_{{user.preferences.hair.color}}') span(class='hair_bangs_{{user.preferences.hair.bangs}}_{{user.preferences.hair.color}}') span(class='hair_beard_{{user.preferences.hair.beard}}_{{user.preferences.hair.color}}') span(class='hair_mustache_{{user.preferences.hair.mustache}}_{{user.preferences.hair.color}}') - span(class='head_healer_5') - span(class='shield_healer_5') - span(class='weapon_healer_6') + span(class='head_special_spring2017Healer') + span(class='headAccessory_special_spring2017Healer') + span(class='shield_special_spring2017Healer') + span(class='weapon_special_spring2017Healer') br .well(ng-show='selectedClass=="warrior"')=env.t('warriorText') .well(ng-show='selectedClass=="wizard"')=env.t('mageText')