diff --git a/common/css/index.css b/common/css/index.css
index deec1cd518..c5c00de4a2 100644
--- a/common/css/index.css
+++ b/common/css/index.css
@@ -1,9 +1,9 @@
/* Comment out for holiday events */
-.npc_ian {
+/* .npc_ian {
background: url("/common/img/sprites/npc_ian.gif") no-repeat;
width: 78px;
height: 135px;
-}
+} */
.quest_burnout {
background: url("/common/img/sprites/quest_burnout.gif") no-repeat;
diff --git a/common/img/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2016Healer.png b/common/img/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2016Healer.png
new file mode 100644
index 0000000000..2a406cf8de
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2016Healer.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2016Mage.png b/common/img/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2016Mage.png
new file mode 100644
index 0000000000..907b3dcdc3
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2016Mage.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2016Rogue.png b/common/img/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2016Rogue.png
new file mode 100644
index 0000000000..4f0e5c57a8
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2016Rogue.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2016Warrior.png b/common/img/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2016Warrior.png
new file mode 100644
index 0000000000..93b89f2ba2
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/broad_armor_special_spring2016Warrior.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2016Healer.png b/common/img/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2016Healer.png
new file mode 100644
index 0000000000..9234ebcc1f
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2016Healer.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2016Mage.png b/common/img/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2016Mage.png
new file mode 100644
index 0000000000..ef764e2302
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2016Mage.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2016Rogue.png b/common/img/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2016Rogue.png
new file mode 100644
index 0000000000..80e047c35d
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2016Rogue.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2016Warrior.png b/common/img/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2016Warrior.png
new file mode 100644
index 0000000000..f46b92ada1
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/headAccessory_special_spring2016Warrior.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/head_special_spring2016Healer.png b/common/img/sprites/spritesmith/gear/events/spring/head_special_spring2016Healer.png
new file mode 100644
index 0000000000..9caaaf84df
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/head_special_spring2016Healer.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/head_special_spring2016Mage.png b/common/img/sprites/spritesmith/gear/events/spring/head_special_spring2016Mage.png
new file mode 100644
index 0000000000..77b617977a
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/head_special_spring2016Mage.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/head_special_spring2016Rogue.png b/common/img/sprites/spritesmith/gear/events/spring/head_special_spring2016Rogue.png
new file mode 100644
index 0000000000..ca6c35c8ca
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/head_special_spring2016Rogue.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/head_special_spring2016Warrior.png b/common/img/sprites/spritesmith/gear/events/spring/head_special_spring2016Warrior.png
new file mode 100644
index 0000000000..3bb9b02517
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/head_special_spring2016Warrior.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shield_special_spring2016Healer.png b/common/img/sprites/spritesmith/gear/events/spring/shield_special_spring2016Healer.png
new file mode 100644
index 0000000000..0004b8a840
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shield_special_spring2016Healer.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shield_special_spring2016Rogue.png b/common/img/sprites/spritesmith/gear/events/spring/shield_special_spring2016Rogue.png
new file mode 100644
index 0000000000..088bac77b5
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shield_special_spring2016Rogue.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shield_special_spring2016Warrior.png b/common/img/sprites/spritesmith/gear/events/spring/shield_special_spring2016Warrior.png
new file mode 100644
index 0000000000..2220d2456b
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shield_special_spring2016Warrior.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2016Healer.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2016Healer.png
new file mode 100644
index 0000000000..f9b344c4cb
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2016Healer.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2016Mage.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2016Mage.png
new file mode 100644
index 0000000000..5c121d34af
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2016Mage.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2016Rogue.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2016Rogue.png
new file mode 100644
index 0000000000..0dd4b64a46
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2016Rogue.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2016Warrior.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2016Warrior.png
new file mode 100644
index 0000000000..88900901a4
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_armor_special_spring2016Warrior.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2016Healer.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2016Healer.png
new file mode 100644
index 0000000000..be7e60f7a9
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2016Healer.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2016Mage.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2016Mage.png
new file mode 100644
index 0000000000..5eb67f884e
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2016Mage.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2016Rogue.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2016Rogue.png
new file mode 100644
index 0000000000..64b3e8022f
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2016Rogue.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2016Warrior.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2016Warrior.png
new file mode 100644
index 0000000000..bcc95bfd32
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_headAccessory_special_spring2016Warrior.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2016Healer.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2016Healer.png
new file mode 100644
index 0000000000..9e83074181
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2016Healer.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2016Mage.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2016Mage.png
new file mode 100644
index 0000000000..fb5e474290
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2016Mage.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2016Rogue.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2016Rogue.png
new file mode 100644
index 0000000000..ef4a2c5d20
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2016Rogue.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2016Warrior.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2016Warrior.png
new file mode 100644
index 0000000000..6d7fa58fc0
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_head_special_spring2016Warrior.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2016Healer.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2016Healer.png
new file mode 100644
index 0000000000..8929e46787
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2016Healer.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2016Rogue.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2016Rogue.png
new file mode 100644
index 0000000000..d9119cfc51
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2016Rogue.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2016Warrior.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2016Warrior.png
new file mode 100644
index 0000000000..640cf5b420
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_shield_special_spring2016Warrior.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2016Healer.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2016Healer.png
new file mode 100644
index 0000000000..b2d95372c5
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2016Healer.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2016Mage.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2016Mage.png
new file mode 100644
index 0000000000..2255e86079
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2016Mage.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2016Rogue.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2016Rogue.png
new file mode 100644
index 0000000000..8dc95951b5
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2016Rogue.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2016Warrior.png b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2016Warrior.png
new file mode 100644
index 0000000000..56fc507379
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/shop/shop_weapon_special_spring2016Warrior.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2016Healer.png b/common/img/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2016Healer.png
new file mode 100644
index 0000000000..503a33ed1c
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2016Healer.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2016Mage.png b/common/img/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2016Mage.png
new file mode 100644
index 0000000000..c9e4e17bb5
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2016Mage.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2016Warrior.png b/common/img/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2016Warrior.png
new file mode 100644
index 0000000000..e3a78f818e
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/slim_armor_special_spring2016Warrior.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/weapon_special_spring2016Healer.png b/common/img/sprites/spritesmith/gear/events/spring/weapon_special_spring2016Healer.png
new file mode 100644
index 0000000000..385a260d7b
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/weapon_special_spring2016Healer.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/weapon_special_spring2016Mage.png b/common/img/sprites/spritesmith/gear/events/spring/weapon_special_spring2016Mage.png
new file mode 100644
index 0000000000..b03d07b50c
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/weapon_special_spring2016Mage.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/weapon_special_spring2016Rogue.png b/common/img/sprites/spritesmith/gear/events/spring/weapon_special_spring2016Rogue.png
new file mode 100644
index 0000000000..b8212d9846
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/weapon_special_spring2016Rogue.png differ
diff --git a/common/img/sprites/spritesmith/gear/events/spring/weapon_special_spring2016Warrior.png b/common/img/sprites/spritesmith/gear/events/spring/weapon_special_spring2016Warrior.png
new file mode 100644
index 0000000000..5035fc9af4
Binary files /dev/null and b/common/img/sprites/spritesmith/gear/events/spring/weapon_special_spring2016Warrior.png differ
diff --git a/common/img/sprites/spritesmith/npcs/npc_alex.png b/common/img/sprites/spritesmith/npcs/npc_alex.png
index e904970937..8982854041 100644
Binary files a/common/img/sprites/spritesmith/npcs/npc_alex.png and b/common/img/sprites/spritesmith/npcs/npc_alex.png differ
diff --git a/common/img/sprites/spritesmith/npcs/npc_bailey.png b/common/img/sprites/spritesmith/npcs/npc_bailey.png
index f6e58617a8..419496bdd0 100644
Binary files a/common/img/sprites/spritesmith/npcs/npc_bailey.png and b/common/img/sprites/spritesmith/npcs/npc_bailey.png differ
diff --git a/common/img/sprites/spritesmith/npcs/npc_daniel.png b/common/img/sprites/spritesmith/npcs/npc_daniel.png
index b12dd9e254..471f751e72 100644
Binary files a/common/img/sprites/spritesmith/npcs/npc_daniel.png and b/common/img/sprites/spritesmith/npcs/npc_daniel.png differ
diff --git a/common/img/sprites/spritesmith/npcs/npc_ian.png b/common/img/sprites/spritesmith/npcs/npc_ian.png
new file mode 100644
index 0000000000..86860dfa1b
Binary files /dev/null and b/common/img/sprites/spritesmith/npcs/npc_ian.png differ
diff --git a/common/img/sprites/spritesmith/npcs/npc_justin.png b/common/img/sprites/spritesmith/npcs/npc_justin.png
index 08cb56f206..9365bc12c9 100644
Binary files a/common/img/sprites/spritesmith/npcs/npc_justin.png and b/common/img/sprites/spritesmith/npcs/npc_justin.png differ
diff --git a/common/img/sprites/spritesmith/npcs/npc_matt.png b/common/img/sprites/spritesmith/npcs/npc_matt.png
index b643153c46..e129d6e43e 100644
Binary files a/common/img/sprites/spritesmith/npcs/npc_matt.png and b/common/img/sprites/spritesmith/npcs/npc_matt.png differ
diff --git a/common/img/sprites/spritesmith/npcs/seasonalshop_open.png b/common/img/sprites/spritesmith/npcs/seasonalshop_open.png
index 5e0ab92cb1..e1f811893e 100644
Binary files a/common/img/sprites/spritesmith/npcs/seasonalshop_open.png and b/common/img/sprites/spritesmith/npcs/seasonalshop_open.png differ
diff --git a/common/locales/en/limited.json b/common/locales/en/limited.json
index 449d2ff26d..687d0e607e 100644
--- a/common/locales/en/limited.json
+++ b/common/locales/en/limited.json
@@ -67,6 +67,10 @@
"witchyWizardSet": "Witchy Wizard (Mage)",
"mummyMedicSet": "Mummy Medic (Healer)",
"vampireSmiterSet": "Vampire Smiter (Rogue)",
+ "bewareDogSet": "Beware Dog (Warrior)",
+ "magicianBunnySet": "Magician's Bunny (Mage)",
+ "comfortingKittySet": "Comforting Kitty (Healer)",
+ "sneakySqueakerSet": "Sneaky Squeaker (Rogue)",
"fallEventAvailability": "Available until October 31",
"winterEventAvailability": "Available until December 31"
}
diff --git a/common/script/content/constants.js b/common/script/content/constants.js
index 339aadcf0b..85d67f90d1 100644
--- a/common/script/content/constants.js
+++ b/common/script/content/constants.js
@@ -23,6 +23,7 @@ export const EVENTS = {
fall2015: { start: '2015-09-21', end: '2015-11-01' },
gaymerx: { start: '2015-12-01', end: '2015-12-14' },
winter2016: { start: '2015-12-18', end: '2016-02-02' },
+ spring2016: { start: '2016-03-18', end: '2016-05-02' },
};
export const GEAR_TYPES = [
diff --git a/common/script/content/gear/sets/special/index.js b/common/script/content/gear/sets/special/index.js
index 48ed0cbee3..5111eaa793 100644
--- a/common/script/content/gear/sets/special/index.js
+++ b/common/script/content/gear/sets/special/index.js
@@ -62,6 +62,9 @@ let armor = {
notes: t('armorSpecialSpringRogueNotes', { per: 15 }),
value: 90,
per: 15,
+ canBuy: () => {
+ return true;
+ },
},
springWarrior: {
event: EVENTS.spring,
@@ -70,6 +73,9 @@ let armor = {
notes: t('armorSpecialSpringWarriorNotes', { con: 9 }),
value: 90,
con: 9,
+ canBuy: () => {
+ return true;
+ },
},
springMage: {
event: EVENTS.spring,
@@ -78,6 +84,9 @@ let armor = {
notes: t('armorSpecialSpringMageNotes', { int: 9 }),
value: 90,
int: 9,
+ canBuy: () => {
+ return true;
+ },
},
springHealer: {
event: EVENTS.spring,
@@ -86,6 +95,9 @@ let armor = {
notes: t('armorSpecialSpringHealerNotes', { con: 15 }),
value: 90,
con: 15,
+ canBuy: () => {
+ return true;
+ },
},
summerRogue: {
event: EVENTS.summer,
@@ -196,6 +208,9 @@ let armor = {
notes: t('armorSpecialSpring2015RogueNotes', { per: 15 }),
value: 90,
per: 15,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Warrior: {
event: EVENTS.spring2015,
@@ -204,6 +219,9 @@ let armor = {
notes: t('armorSpecialSpring2015WarriorNotes', { con: 9 }),
value: 90,
con: 9,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Mage: {
event: EVENTS.spring2015,
@@ -212,6 +230,9 @@ let armor = {
notes: t('armorSpecialSpring2015MageNotes', { int: 9 }),
value: 90,
int: 9,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Healer: {
event: EVENTS.spring2015,
@@ -220,6 +241,9 @@ let armor = {
notes: t('armorSpecialSpring2015HealerNotes', { con: 15 }),
value: 90,
con: 15,
+ canBuy: () => {
+ return true;
+ },
},
summer2015Rogue: {
event: EVENTS.summer2015,
@@ -329,6 +353,38 @@ let armor = {
value: 0,
canOwn: ownsItem('armor_special_birthday2016'),
},
+ spring2016Rogue: {
+ event: EVENTS.spring2016,
+ specialClass: 'rogue',
+ text: t('armorSpecialSpring2016RogueText'),
+ notes: t('armorSpecialSpring2016RogueNotes', { per: 15 }),
+ value: 90,
+ per: 15,
+ },
+ spring2016Warrior: {
+ event: EVENTS.spring2016,
+ specialClass: 'warrior',
+ text: t('armorSpecialSpring2016WarriorText'),
+ notes: t('armorSpecialSpring2016WarriorNotes', { con: 9 }),
+ value: 90,
+ con: 9,
+ },
+ spring2016Mage: {
+ event: EVENTS.spring2016,
+ specialClass: 'wizard',
+ text: t('armorSpecialSpring2016MageText'),
+ notes: t('armorSpecialSpring2016MageNotes', { int: 9 }),
+ value: 90,
+ int: 9,
+ },
+ spring2016Healer: {
+ event: EVENTS.spring2016,
+ specialClass: 'healer',
+ text: t('armorSpecialSpring2016HealerText'),
+ notes: t('armorSpecialSpring2016HealerNotes', { con: 15 }),
+ value: 90,
+ con: 15,
+ },
};
let back = {
@@ -427,9 +483,6 @@ let head = {
notes: t('headSpecialYetiNotes', { str: 9 }),
str: 9,
value: 60,
- canBuy: () => {
- return true;
- },
},
ski: {
event: EVENTS.winter,
@@ -438,9 +491,6 @@ let head = {
notes: t('headSpecialSkiNotes', { per: 9 }),
per: 9,
value: 60,
- canBuy: () => {
- return true;
- },
},
candycane: {
event: EVENTS.winter,
@@ -449,9 +499,6 @@ let head = {
notes: t('headSpecialCandycaneNotes', { per: 7 }),
per: 7,
value: 60,
- canBuy: () => {
- return true;
- },
},
snowflake: {
event: EVENTS.winter,
@@ -460,9 +507,6 @@ let head = {
notes: t('headSpecialSnowflakeNotes', { int: 7 }),
int: 7,
value: 60,
- canBuy: () => {
- return true;
- },
},
springRogue: {
event: EVENTS.spring,
@@ -471,6 +515,9 @@ let head = {
notes: t('headSpecialSpringRogueNotes', { per: 9 }),
value: 60,
per: 9,
+ canBuy: () => {
+ return true;
+ },
},
springWarrior: {
event: EVENTS.spring,
@@ -479,6 +526,9 @@ let head = {
notes: t('headSpecialSpringWarriorNotes', { str: 9 }),
value: 60,
str: 9,
+ canBuy: () => {
+ return true;
+ },
},
springMage: {
event: EVENTS.spring,
@@ -487,6 +537,9 @@ let head = {
notes: t('headSpecialSpringMageNotes', { per: 7 }),
value: 60,
per: 7,
+ canBuy: () => {
+ return true;
+ },
},
springHealer: {
event: EVENTS.spring,
@@ -495,6 +548,9 @@ let head = {
notes: t('headSpecialSpringHealerNotes', { int: 7 }),
value: 60,
int: 7,
+ canBuy: () => {
+ return true;
+ },
},
summerRogue: {
event: EVENTS.summer,
@@ -535,9 +591,6 @@ let head = {
notes: t('headSpecialFallRogueNotes', { per: 9 }),
value: 60,
per: 9,
- canBuy: () => {
- return true;
- },
},
fallWarrior: {
event: EVENTS.fall,
@@ -546,9 +599,6 @@ let head = {
notes: t('headSpecialFallWarriorNotes', { str: 9 }),
value: 60,
str: 9,
- canBuy: () => {
- return true;
- },
},
fallMage: {
event: EVENTS.fall,
@@ -557,9 +607,6 @@ let head = {
notes: t('headSpecialFallMageNotes', { per: 7 }),
value: 60,
per: 7,
- canBuy: () => {
- return true;
- },
},
fallHealer: {
event: EVENTS.fall,
@@ -568,9 +615,6 @@ let head = {
notes: t('headSpecialFallHealerNotes', { int: 7 }),
value: 60,
int: 7,
- canBuy: () => {
- return true;
- },
},
winter2015Rogue: {
event: EVENTS.winter2015,
@@ -579,9 +623,6 @@ let head = {
notes: t('headSpecialWinter2015RogueNotes', { per: 9 }),
value: 60,
per: 9,
- canBuy: () => {
- return true;
- },
},
winter2015Warrior: {
event: EVENTS.winter2015,
@@ -590,9 +631,6 @@ let head = {
notes: t('headSpecialWinter2015WarriorNotes', { str: 9 }),
value: 60,
str: 9,
- canBuy: () => {
- return true;
- },
},
winter2015Mage: {
event: EVENTS.winter2015,
@@ -601,9 +639,6 @@ let head = {
notes: t('headSpecialWinter2015MageNotes', { per: 7 }),
value: 60,
per: 7,
- canBuy: () => {
- return true;
- },
},
winter2015Healer: {
event: EVENTS.winter2015,
@@ -612,9 +647,6 @@ let head = {
notes: t('headSpecialWinter2015HealerNotes', { int: 7 }),
value: 60,
int: 7,
- canBuy: () => {
- return true;
- },
},
nye2014: {
text: t('headSpecialNye2014Text'),
@@ -629,6 +661,9 @@ let head = {
notes: t('headSpecialSpring2015RogueNotes', { per: 9 }),
value: 60,
per: 9,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Warrior: {
event: EVENTS.spring2015,
@@ -637,6 +672,9 @@ let head = {
notes: t('headSpecialSpring2015WarriorNotes', { str: 9 }),
value: 60,
str: 9,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Mage: {
event: EVENTS.spring2015,
@@ -645,6 +683,9 @@ let head = {
notes: t('headSpecialSpring2015MageNotes', { per: 7 }),
value: 60,
per: 7,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Healer: {
event: EVENTS.spring2015,
@@ -653,6 +694,9 @@ let head = {
notes: t('headSpecialSpring2015HealerNotes', { int: 7 }),
value: 60,
int: 7,
+ canBuy: () => {
+ return true;
+ },
},
summer2015Rogue: {
event: EVENTS.summer2015,
@@ -762,6 +806,38 @@ let head = {
value: 0,
canOwn: ownsItem('head_special_nye2015'),
},
+ spring2016Rogue: {
+ event: EVENTS.spring2016,
+ specialClass: 'rogue',
+ text: t('headSpecialSpring2016RogueText'),
+ notes: t('headSpecialSpring2016RogueNotes', { per: 9 }),
+ value: 60,
+ per: 9,
+ },
+ spring2016Warrior: {
+ event: EVENTS.spring2016,
+ specialClass: 'warrior',
+ text: t('headSpecialSpring2016WarriorText'),
+ notes: t('headSpecialSpring2016WarriorNotes', { str: 9 }),
+ value: 60,
+ str: 9,
+ },
+ spring2016Mage: {
+ event: EVENTS.spring2016,
+ specialClass: 'wizard',
+ text: t('headSpecialSpring2016MageText'),
+ notes: t('headSpecialSpring2016MageNotes', { per: 7 }),
+ value: 60,
+ per: 7,
+ },
+ spring2016Healer: {
+ event: EVENTS.spring2016,
+ specialClass: 'healer',
+ text: t('headSpecialSpring2016HealerText'),
+ notes: t('headSpecialSpring2016HealerNotes', { int: 7 }),
+ value: 60,
+ int: 7,
+ },
};
let headAccessory = {
@@ -771,6 +847,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpringRogueText'),
notes: t('headAccessorySpecialSpringRogueNotes'),
value: 20,
+ canBuy: () => {
+ return true;
+ },
},
springWarrior: {
event: EVENTS.spring,
@@ -778,6 +857,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpringWarriorText'),
notes: t('headAccessorySpecialSpringWarriorNotes'),
value: 20,
+ canBuy: () => {
+ return true;
+ },
},
springMage: {
event: EVENTS.spring,
@@ -785,6 +867,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpringMageText'),
notes: t('headAccessorySpecialSpringMageNotes'),
value: 20,
+ canBuy: () => {
+ return true;
+ },
},
springHealer: {
event: EVENTS.spring,
@@ -792,6 +877,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpringHealerText'),
notes: t('headAccessorySpecialSpringHealerNotes'),
value: 20,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Rogue: {
event: EVENTS.spring2015,
@@ -799,6 +887,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpring2015RogueText'),
notes: t('headAccessorySpecialSpring2015RogueNotes'),
value: 20,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Warrior: {
event: EVENTS.spring2015,
@@ -806,6 +897,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpring2015WarriorText'),
notes: t('headAccessorySpecialSpring2015WarriorNotes'),
value: 20,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Mage: {
event: EVENTS.spring2015,
@@ -813,6 +907,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpring2015MageText'),
notes: t('headAccessorySpecialSpring2015MageNotes'),
value: 20,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Healer: {
event: EVENTS.spring2015,
@@ -820,6 +917,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpring2015HealerText'),
notes: t('headAccessorySpecialSpring2015HealerNotes'),
value: 20,
+ canBuy: () => {
+ return true;
+ },
},
bearEars: {
gearSet: 'animal',
@@ -901,6 +1001,34 @@ let headAccessory = {
return true;
},
},
+ spring2016Rogue: {
+ event: EVENTS.spring2016,
+ specialClass: 'rogue',
+ text: t('headAccessorySpecialSpring2016RogueText'),
+ notes: t('headAccessorySpecialSpring2016RogueNotes'),
+ value: 20,
+ },
+ spring2016Warrior: {
+ event: EVENTS.spring2016,
+ specialClass: 'warrior',
+ text: t('headAccessorySpecialSpring2016WarriorText'),
+ notes: t('headAccessorySpecialSpring2016WarriorNotes'),
+ value: 20,
+ },
+ spring2016Mage: {
+ event: EVENTS.spring2016,
+ specialClass: 'wizard',
+ text: t('headAccessorySpecialSpring2016MageText'),
+ notes: t('headAccessorySpecialSpring2016MageNotes'),
+ value: 20,
+ },
+ spring2016Healer: {
+ event: EVENTS.spring2016,
+ specialClass: 'healer',
+ text: t('headAccessorySpecialSpring2016HealerText'),
+ notes: t('headAccessorySpecialSpring2016HealerNotes'),
+ value: 20,
+ },
};
let shield = {
@@ -928,9 +1056,6 @@ let shield = {
notes: t('shieldSpecialYetiNotes', { con: 7 }),
con: 7,
value: 70,
- canBuy: () => {
- return true;
- },
},
ski: {
event: EVENTS.winter,
@@ -939,9 +1064,6 @@ let shield = {
notes: t('weaponSpecialSkiNotes', { str: 8 }),
str: 8,
value: 90,
- canBuy: () => {
- return true;
- },
},
snowflake: {
event: EVENTS.winter,
@@ -950,9 +1072,6 @@ let shield = {
notes: t('shieldSpecialSnowflakeNotes', { con: 9 }),
con: 9,
value: 70,
- canBuy: () => {
- return true;
- },
},
springRogue: {
event: EVENTS.spring,
@@ -961,6 +1080,9 @@ let shield = {
notes: t('shieldSpecialSpringRogueNotes', { str: 8 }),
value: 80,
str: 8,
+ canBuy: () => {
+ return true;
+ },
},
springWarrior: {
event: EVENTS.spring,
@@ -969,6 +1091,9 @@ let shield = {
notes: t('shieldSpecialSpringWarriorNotes', { con: 7 }),
value: 70,
con: 7,
+ canBuy: () => {
+ return true;
+ },
},
springHealer: {
event: EVENTS.spring,
@@ -977,6 +1102,9 @@ let shield = {
notes: t('shieldSpecialSpringHealerNotes', { con: 9 }),
value: 70,
con: 9,
+ canBuy: () => {
+ return true;
+ },
},
summerRogue: {
event: EVENTS.summer,
@@ -1042,9 +1170,6 @@ let shield = {
notes: t('shieldSpecialWinter2015RogueNotes', { str: 8 }),
value: 80,
str: 8,
- canBuy: () => {
- return true;
- },
},
winter2015Warrior: {
event: EVENTS.winter2015,
@@ -1053,9 +1178,6 @@ let shield = {
notes: t('shieldSpecialWinter2015WarriorNotes', { con: 7 }),
value: 70,
con: 7,
- canBuy: () => {
- return true;
- },
},
winter2015Healer: {
event: EVENTS.winter2015,
@@ -1064,9 +1186,6 @@ let shield = {
notes: t('shieldSpecialWinter2015HealerNotes', { con: 9 }),
value: 70,
con: 9,
- canBuy: () => {
- return true;
- },
},
spring2015Rogue: {
event: EVENTS.spring2015,
@@ -1075,6 +1194,9 @@ let shield = {
notes: t('shieldSpecialSpring2015RogueNotes', { str: 8 }),
value: 80,
str: 8,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Warrior: {
event: EVENTS.spring2015,
@@ -1083,6 +1205,9 @@ let shield = {
notes: t('shieldSpecialSpring2015WarriorNotes', { con: 7 }),
value: 70,
con: 7,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Healer: {
event: EVENTS.spring2015,
@@ -1091,6 +1216,9 @@ let shield = {
notes: t('shieldSpecialSpring2015HealerNotes', { con: 9 }),
value: 70,
con: 9,
+ canBuy: () => {
+ return true;
+ },
},
summer2015Rogue: {
event: EVENTS.summer2015,
@@ -1099,6 +1227,9 @@ let shield = {
notes: t('shieldSpecialSummer2015RogueNotes', { str: 8 }),
value: 80,
str: 8,
+ canBuy: () => {
+ return true;
+ },
},
summer2015Warrior: {
event: EVENTS.summer2015,
@@ -1164,6 +1295,30 @@ let shield = {
value: 70,
con: 9,
},
+ spring2016Rogue: {
+ event: EVENTS.spring2016,
+ specialClass: 'rogue',
+ text: t('shieldSpecialSpring2016RogueText'),
+ notes: t('shieldSpecialSpring2016RogueNotes', { str: 8 }),
+ value: 80,
+ str: 8,
+ },
+ spring2016Warrior: {
+ event: EVENTS.spring2016,
+ specialClass: 'warrior',
+ text: t('shieldSpecialSpring2016WarriorText'),
+ notes: t('shieldSpecialSpring2016WarriorNotes', { con: 7 }),
+ value: 70,
+ con: 7,
+ },
+ spring2016Healer: {
+ event: EVENTS.spring2016,
+ specialClass: 'healer',
+ text: t('shieldSpecialSpring2016HealerText'),
+ notes: t('shieldSpecialSpring2016HealerNotes', { con: 9 }),
+ value: 70,
+ con: 9,
+ },
};
let weapon = {
@@ -1186,9 +1341,6 @@ let weapon = {
notes: t('weaponSpecialYetiNotes', { str: 15 }),
str: 15,
value: 90,
- canBuy: () => {
- return true;
- },
},
ski: {
event: EVENTS.winter,
@@ -1197,9 +1349,6 @@ let weapon = {
notes: t('weaponSpecialSkiNotes', { str: 8 }),
str: 8,
value: 90,
- canBuy: () => {
- return true;
- },
},
candycane: {
event: EVENTS.winter,
@@ -1210,9 +1359,6 @@ let weapon = {
int: 15,
per: 7,
value: 160,
- canBuy: () => {
- return true;
- },
},
snowflake: {
event: EVENTS.winter,
@@ -1221,9 +1367,6 @@ let weapon = {
notes: t('weaponSpecialSnowflakeNotes', { int: 9 }),
int: 9,
value: 90,
- canBuy: () => {
- return true;
- },
},
springRogue: {
event: EVENTS.spring,
@@ -1232,6 +1375,9 @@ let weapon = {
notes: t('weaponSpecialSpringRogueNotes', { str: 8 }),
value: 80,
str: 8,
+ canBuy: () => {
+ return true;
+ },
},
springWarrior: {
event: EVENTS.spring,
@@ -1240,6 +1386,9 @@ let weapon = {
notes: t('weaponSpecialSpringWarriorNotes', { str: 15 }),
value: 90,
str: 15,
+ canBuy: () => {
+ return true;
+ },
},
springMage: {
event: EVENTS.spring,
@@ -1250,6 +1399,9 @@ let weapon = {
value: 160,
int: 15,
per: 7,
+ canBuy: () => {
+ return true;
+ },
},
springHealer: {
event: EVENTS.spring,
@@ -1258,6 +1410,9 @@ let weapon = {
notes: t('weaponSpecialSpringHealerNotes', { int: 9 }),
value: 90,
int: 9,
+ canBuy: () => {
+ return true;
+ },
},
summerRogue: {
event: EVENTS.summer,
@@ -1300,9 +1455,6 @@ let weapon = {
notes: t('weaponSpecialFallRogueNotes', { str: 8 }),
value: 80,
str: 8,
- canBuy: () => {
- return true;
- },
},
fallWarrior: {
event: EVENTS.fall,
@@ -1311,9 +1463,6 @@ let weapon = {
notes: t('weaponSpecialFallWarriorNotes', { str: 15 }),
value: 90,
str: 15,
- canBuy: () => {
- return true;
- },
},
fallMage: {
event: EVENTS.fall,
@@ -1324,9 +1473,6 @@ let weapon = {
value: 160,
int: 15,
per: 7,
- canBuy: () => {
- return true;
- },
},
fallHealer: {
event: EVENTS.fall,
@@ -1335,9 +1481,6 @@ let weapon = {
notes: t('weaponSpecialFallHealerNotes', { int: 9 }),
value: 90,
int: 9,
- canBuy: () => {
- return true;
- },
},
winter2015Rogue: {
event: EVENTS.winter2015,
@@ -1346,9 +1489,6 @@ let weapon = {
notes: t('weaponSpecialWinter2015RogueNotes', { str: 8 }),
value: 80,
str: 8,
- canBuy: () => {
- return true;
- },
},
winter2015Warrior: {
event: EVENTS.winter2015,
@@ -1357,9 +1497,6 @@ let weapon = {
notes: t('weaponSpecialWinter2015WarriorNotes', { str: 15 }),
value: 90,
str: 15,
- canBuy: () => {
- return true;
- },
},
winter2015Mage: {
event: EVENTS.winter2015,
@@ -1370,9 +1507,6 @@ let weapon = {
value: 160,
int: 15,
per: 7,
- canBuy: () => {
- return true;
- },
},
winter2015Healer: {
event: EVENTS.winter2015,
@@ -1381,9 +1515,6 @@ let weapon = {
notes: t('weaponSpecialWinter2015HealerNotes', { int: 9 }),
value: 90,
int: 9,
- canBuy: () => {
- return true;
- },
},
spring2015Rogue: {
event: EVENTS.spring2015,
@@ -1392,6 +1523,9 @@ let weapon = {
notes: t('weaponSpecialSpring2015RogueNotes', { str: 8 }),
value: 80,
str: 8,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Warrior: {
event: EVENTS.spring2015,
@@ -1400,6 +1534,9 @@ let weapon = {
notes: t('weaponSpecialSpring2015WarriorNotes', { str: 15 }),
value: 90,
str: 15,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Mage: {
event: EVENTS.spring2015,
@@ -1410,6 +1547,9 @@ let weapon = {
value: 160,
int: 15,
per: 7,
+ canBuy: () => {
+ return true;
+ },
},
spring2015Healer: {
event: EVENTS.spring2015,
@@ -1418,6 +1558,9 @@ let weapon = {
notes: t('weaponSpecialSpring2015HealerNotes', { int: 9 }),
value: 90,
int: 9,
+ canBuy: () => {
+ return true;
+ },
},
summer2015Rogue: {
event: EVENTS.summer2015,
@@ -1521,6 +1664,40 @@ let weapon = {
value: 90,
int: 9,
},
+ spring2016Rogue: {
+ event: EVENTS.spring2016,
+ specialClass: 'rogue',
+ text: t('weaponSpecialSpring2016RogueText'),
+ notes: t('weaponSpecialSpring2016RogueNotes', { str: 8 }),
+ value: 80,
+ str: 8,
+ },
+ spring2016Warrior: {
+ event: EVENTS.spring2016,
+ specialClass: 'warrior',
+ text: t('weaponSpecialSpring2016WarriorText'),
+ notes: t('weaponSpecialSpring2016WarriorNotes', { str: 15 }),
+ value: 90,
+ str: 15,
+ },
+ spring2016Mage: {
+ event: EVENTS.spring2016,
+ specialClass: 'wizard',
+ twoHanded: true,
+ text: t('weaponSpecialSpring2016MageText'),
+ notes: t('weaponSpecialSpring2016MageNotes', { int: 15, per: 7 }),
+ value: 160,
+ int: 15,
+ per: 7,
+ },
+ spring2016Healer: {
+ event: EVENTS.spring2016,
+ specialClass: 'healer',
+ text: t('weaponSpecialSpring2016HealerText'),
+ notes: t('weaponSpecialSpring2016HealerNotes', { int: 9 }),
+ value: 90,
+ int: 9,
+ },
};
let specialSet = {
diff --git a/website/views/options/inventory/seasonal-shop.jade b/website/views/options/inventory/seasonal-shop.jade
index a3ca8d6c77..2ff3075c65 100644
--- a/website/views/options/inventory/seasonal-shop.jade
+++ b/website/views/options/inventory/seasonal-shop.jade
@@ -1,17 +1,17 @@
.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')
- // .well(ng-if='User.user.achievements.rebirths > 0')=env.t('seasonalShopRebirth')
+ .well(ng-if='User.user.achievements.rebirths > 0')=env.t('seasonalShopRebirth')
- // li.customize-menu.inventory-gear
- menu.pets-menu(label='{{::label}}', ng-repeat='(set,label) in ::{yeti:env.t("yetiSet"), candycane:env.t("candycaneSet"), snowflake:env.t("snowflakeSet"), ski:env.t("skiSet"), winter2015Warrior:env.t("gingerbreadSet"), winter2015Mage:env.t("northMageSet"), winter2015Healer:env.t("soothingSkaterSet"), winter2015Rogue:env.t("icicleDrakeSet")}')
+ li.customize-menu.inventory-gear
+ menu.pets-menu(label='{{::label}}', ng-repeat='(set,label) in ::{springWarrior:env.t("mightyBunnySet"), springMage:env.t("magicMouseSet"), springHealer:env.t("lovingPupSet"), springRogue:env.t("stealthyKittySet"), spring2015Warrior:env.t("bewareDogSet"), spring2015Mage:env.t("magicianBunnySet"), spring2015Healer:env.t("comfortingKittySet"), spring2015Rogue:env.t("sneakySqueakerSet")}')
div(ng-repeat='item in ::getSeasonalShopArray(set)',
ng-class="{transparent: user.items.gear.owned[item.key] !== undefined}")
button.customize-option(class='shop_{{::item.key}}',
@@ -23,7 +23,7 @@
| {{((item.specialClass == "wizard") && (item.type == "weapon")) + 1}}
span.Pet_Currency_Gem1x.inline-gems
- menu.pets-menu(label=env.t('quests'))
+ // menu.pets-menu(label=env.t('quests'))
div(ng-repeat='quest in ::getSeasonalShopQuests()')
button.customize-option(ng-class='(quest.previous && !user.achievements.quests[quest.previous]) ? "inventory_quest_scroll_locked inventory_quest_scroll_{{::quest.key}}_locked locked" : "inventory_quest_scroll inventory_quest_scroll_{{::quest.key}}"'
data-popover-html="{{::quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : questPopover(quest) | markdown}}",
@@ -32,7 +32,7 @@
ng-click='buyQuest(quest.key)')
p {{::quest.value}}
span.Pet_Currency_Gem1x.inline-gems
- menu.pets-menu(label=env.t('seasonalItems'))
+ // menu.pets-menu(label=env.t('seasonalItems'))
div
button.customize-option(class='inventory_special_snowball',
popover='{{::Content.spells.special.snowball.notes()}}',