diff --git a/img/sprites/spritesmith/achievements/achievement-nye.png b/img/sprites/spritesmith/achievements/achievement-nye.png new file mode 100644 index 0000000000..f2ef7aa2b8 Binary files /dev/null and b/img/sprites/spritesmith/achievements/achievement-nye.png differ diff --git a/img/sprites/spritesmith/customize/beards/beard_.png b/img/sprites/spritesmith/customize/beards/beard_.png deleted file mode 100644 index 9f046b4495..0000000000 Binary files a/img/sprites/spritesmith/customize/beards/beard_.png and /dev/null differ diff --git a/img/sprites/spritesmith/gear/events/winter/head_special_nye2014.png b/img/sprites/spritesmith/gear/events/winter/head_special_nye2014.png new file mode 100644 index 0000000000..6d345418d1 Binary files /dev/null and b/img/sprites/spritesmith/gear/events/winter/head_special_nye2014.png differ diff --git a/img/sprites/spritesmith/gear/events/winter/shop/shop_head_special_nye2014.png b/img/sprites/spritesmith/gear/events/winter/shop/shop_head_special_nye2014.png new file mode 100644 index 0000000000..80402cbfbe Binary files /dev/null and b/img/sprites/spritesmith/gear/events/winter/shop/shop_head_special_nye2014.png differ diff --git a/img/sprites/spritesmith/misc/inventory_special_nye.png b/img/sprites/spritesmith/misc/inventory_special_nye.png new file mode 100644 index 0000000000..63d2a886b7 Binary files /dev/null and b/img/sprites/spritesmith/misc/inventory_special_nye.png differ diff --git a/img/sprites/spritesmith/npcs/npc_alex.png b/img/sprites/spritesmith/npcs/npc_alex.png index 8d45538129..5fefa87f60 100644 Binary files a/img/sprites/spritesmith/npcs/npc_alex.png and b/img/sprites/spritesmith/npcs/npc_alex.png differ diff --git a/img/sprites/spritesmith/npcs/npc_bailey.png b/img/sprites/spritesmith/npcs/npc_bailey.png index 8e1b450199..3cb678e633 100644 Binary files a/img/sprites/spritesmith/npcs/npc_bailey.png and b/img/sprites/spritesmith/npcs/npc_bailey.png differ diff --git a/img/sprites/spritesmith/npcs/npc_daniel.png b/img/sprites/spritesmith/npcs/npc_daniel.png index 4132b30145..1f7224a552 100644 Binary files a/img/sprites/spritesmith/npcs/npc_daniel.png and b/img/sprites/spritesmith/npcs/npc_daniel.png differ diff --git a/img/sprites/spritesmith/npcs/npc_ian.png b/img/sprites/spritesmith/npcs/npc_ian.png index 6d490c1152..b6ac8374eb 100644 Binary files a/img/sprites/spritesmith/npcs/npc_ian.png and b/img/sprites/spritesmith/npcs/npc_ian.png differ diff --git a/img/sprites/spritesmith/npcs/npc_justin.png b/img/sprites/spritesmith/npcs/npc_justin.png index bf42f04508..1e8ed19c1c 100644 Binary files a/img/sprites/spritesmith/npcs/npc_justin.png and b/img/sprites/spritesmith/npcs/npc_justin.png differ diff --git a/img/sprites/spritesmith/npcs/npc_matt.png b/img/sprites/spritesmith/npcs/npc_matt.png index ed0e3bab59..521485e1d9 100644 Binary files a/img/sprites/spritesmith/npcs/npc_matt.png and b/img/sprites/spritesmith/npcs/npc_matt.png differ diff --git a/img/sprites/spritesmith/npcs/seasonalshop_winter2015.png b/img/sprites/spritesmith/npcs/seasonalshop_winter2015.png index bf18da469c..f37b309c95 100644 Binary files a/img/sprites/spritesmith/npcs/seasonalshop_winter2015.png and b/img/sprites/spritesmith/npcs/seasonalshop_winter2015.png differ diff --git a/img/sprites/spritesmith/gear/events/fall/promo/2014_Fall_HealerPROMO2.png b/img/sprites/spritesmith/promo/2014_Fall_HealerPROMO2.png similarity index 100% rename from img/sprites/spritesmith/gear/events/fall/promo/2014_Fall_HealerPROMO2.png rename to img/sprites/spritesmith/promo/2014_Fall_HealerPROMO2.png diff --git a/img/sprites/spritesmith/gear/events/fall/promo/2014_Fall_Mage_PROMO9.png b/img/sprites/spritesmith/promo/2014_Fall_Mage_PROMO9.png similarity index 100% rename from img/sprites/spritesmith/gear/events/fall/promo/2014_Fall_Mage_PROMO9.png rename to img/sprites/spritesmith/promo/2014_Fall_Mage_PROMO9.png diff --git a/img/sprites/spritesmith/gear/events/fall/promo/2014_Fall_RoguePROMO3.png b/img/sprites/spritesmith/promo/2014_Fall_RoguePROMO3.png similarity index 100% rename from img/sprites/spritesmith/gear/events/fall/promo/2014_Fall_RoguePROMO3.png rename to img/sprites/spritesmith/promo/2014_Fall_RoguePROMO3.png diff --git a/img/sprites/spritesmith/gear/events/fall/promo/2014_Fall_Warrior_PROMO.png b/img/sprites/spritesmith/promo/2014_Fall_Warrior_PROMO.png similarity index 100% rename from img/sprites/spritesmith/gear/events/fall/promo/2014_Fall_Warrior_PROMO.png rename to img/sprites/spritesmith/promo/2014_Fall_Warrior_PROMO.png diff --git a/img/sprites/spritesmith/gear/events/mystery_201405/promo_mystery_201405.png b/img/sprites/spritesmith/promo/promo_mystery_201405.png similarity index 100% rename from img/sprites/spritesmith/gear/events/mystery_201405/promo_mystery_201405.png rename to img/sprites/spritesmith/promo/promo_mystery_201405.png diff --git a/img/sprites/spritesmith/gear/events/mystery_201406/promo_mystery_201406.png b/img/sprites/spritesmith/promo/promo_mystery_201406.png similarity index 100% rename from img/sprites/spritesmith/gear/events/mystery_201406/promo_mystery_201406.png rename to img/sprites/spritesmith/promo/promo_mystery_201406.png diff --git a/img/sprites/spritesmith/gear/events/mystery_201407/promo_mystery_201407.png b/img/sprites/spritesmith/promo/promo_mystery_201407.png similarity index 100% rename from img/sprites/spritesmith/gear/events/mystery_201407/promo_mystery_201407.png rename to img/sprites/spritesmith/promo/promo_mystery_201407.png diff --git a/img/sprites/spritesmith/gear/events/mystery_201408/promo_mystery_201408.png b/img/sprites/spritesmith/promo/promo_mystery_201408.png similarity index 100% rename from img/sprites/spritesmith/gear/events/mystery_201408/promo_mystery_201408.png rename to img/sprites/spritesmith/promo/promo_mystery_201408.png diff --git a/img/sprites/spritesmith/gear/events/mystery_201409/promo_mystery_201409.png b/img/sprites/spritesmith/promo/promo_mystery_201409.png similarity index 100% rename from img/sprites/spritesmith/gear/events/mystery_201409/promo_mystery_201409.png rename to img/sprites/spritesmith/promo/promo_mystery_201409.png diff --git a/img/sprites/spritesmith/gear/events/mystery_201410/promo_mystery_201410.png b/img/sprites/spritesmith/promo/promo_mystery_201410.png similarity index 100% rename from img/sprites/spritesmith/gear/events/mystery_201410/promo_mystery_201410.png rename to img/sprites/spritesmith/promo/promo_mystery_201410.png diff --git a/img/sprites/spritesmith/gear/events/mystery_201411/promo_mystery_201411.png b/img/sprites/spritesmith/promo/promo_mystery_201411.png similarity index 100% rename from img/sprites/spritesmith/gear/events/mystery_201411/promo_mystery_201411.png rename to img/sprites/spritesmith/promo/promo_mystery_201411.png diff --git a/img/sprites/spritesmith/gear/events/mystery_201412/promo_mystery_201412.png b/img/sprites/spritesmith/promo/promo_mystery_201412.png similarity index 100% rename from img/sprites/spritesmith/gear/events/mystery_201412/promo_mystery_201412.png rename to img/sprites/spritesmith/promo/promo_mystery_201412.png diff --git a/img/sprites/spritesmith/gear/events/mystery_3014/promo_mystery_3014.png b/img/sprites/spritesmith/promo/promo_mystery_3014.png similarity index 100% rename from img/sprites/spritesmith/gear/events/mystery_3014/promo_mystery_3014.png rename to img/sprites/spritesmith/promo/promo_mystery_3014.png diff --git a/img/sprites/spritesmith/promo/promo_partyhats.png b/img/sprites/spritesmith/promo/promo_partyhats.png new file mode 100644 index 0000000000..49234254da Binary files /dev/null and b/img/sprites/spritesmith/promo/promo_partyhats.png differ diff --git a/img/sprites/spritesmith/misc/promo_winterclasses2015.png b/img/sprites/spritesmith/promo/promo_winterclasses2015.png similarity index 100% rename from img/sprites/spritesmith/misc/promo_winterclasses2015.png rename to img/sprites/spritesmith/promo/promo_winterclasses2015.png diff --git a/img/sprites/spritesmith/misc/promo_winteryhair.png b/img/sprites/spritesmith/promo/promo_winteryhair.png similarity index 100% rename from img/sprites/spritesmith/misc/promo_winteryhair.png rename to img/sprites/spritesmith/promo/promo_winteryhair.png diff --git a/locales/en/gear.json b/locales/en/gear.json index c0d1cde61f..3bf5adef7f 100644 --- a/locales/en/gear.json +++ b/locales/en/gear.json @@ -346,6 +346,8 @@ "headSpecialFallHealerText": "Head Bandages", "headSpecialFallHealerNotes": "Highly sanitary and very fashionable. Increases Intelligence by <%= int %>. Limited Edition 2014 Autumn Gear.", + "headSpecialNye2014Text": "Silly Party Hat", + "headSpecialNye2014Notes": "You've received a Silly Party Hat! Wear it with pride while ringing in the New Year! Confers no benefit.", "headSpecialWinter2015RogueText": "Icicle Drake Mask", "headSpecialWinter2015RogueNotes": "You are truly, definitely, absolutely a genuine Icicle Drake. You are not infiltrating the Icicle Drake hives. You have no interest at all in the hoards of riches rumored to lie in their frigid tunnels. Rawr. Increases Perception by <%= per %>. Limited Edition 2015 Winter Gear.", "headSpecialWinter2015WarriorText": "Gingerbread Helm", diff --git a/locales/en/limited.json b/locales/en/limited.json index 05a23a277d..8c446e629d 100644 --- a/locales/en/limited.json +++ b/locales/en/limited.json @@ -21,5 +21,15 @@ "candycaneSet": "Candy Cane (Mage)", "skiSet": "Ski-sassin (Rogue)", "snowflakeSet": "Snowflake (Healer)", - "yetiSet": "Yeti Tamer (Warrior)" + "yetiSet": "Yeti Tamer (Warrior)", + "nyeCard": "New Year's Card", + "nyeCardNotes": "Send a New Year's card to a friend.", + "seasonalItems": "Seasonal Items", + "auldAcquaintance": "Auld Acquaintance", + "auldAcquaintanceText": "Happy New Year! Sent or received <%= cards %> New Year's cards.", + "newYear0": "Happy New Year! May you slay many a bad Habit.", + "newYear1": "Happy New Year! May you reap many Rewards.", + "newYear2": "Happy New Year! May you earn many a Perfect Day.", + "newYear3": "Happy New Year! May your To-Do list stay short and sweet.", + "newYear4": "Happy New Year! May you not get attacked by a raging Hippogriff." } diff --git a/script/content.coffee b/script/content.coffee index 8404409f9e..c19a2a7609 100644 --- a/script/content.coffee +++ b/script/content.coffee @@ -260,7 +260,8 @@ gear = winter2015Rogue: event: events.winter2015, specialClass: 'rogue', text: t('headSpecialWinter2015RogueText'), notes: t('headSpecialWinter2015RogueNotes', {per: 9}),value: 60,per: 9 winter2015Warrior: event: events.winter2015, specialClass: 'warrior', text: t('headSpecialWinter2015WarriorText'), notes: t('headSpecialWinter2015WarriorNotes', {str: 9}),value: 60,str: 9 winter2015Mage: event: events.winter2015, specialClass: 'wizard', text: t('headSpecialWinter2015MageText'), notes: t('headSpecialWinter2015MageNotes', {per: 7}),value: 60,per: 7 - winter2015Healer: event: events.winter2015, specialClass: 'healer', text: t('headSpecialWinter2015HealerText'), notes: t('headSpecialWinter2015HealerNotes', {int: 7}), value: 60, int: 7 + winter2015Healer: event: events.winter2015, specialClass: 'healer', text: t('headSpecialWinter2015HealerText'), notes: t('headSpecialWinter2015HealerNotes', {int: 7}), value: 60, int: 7 + nye2014: text: t('headSpecialNye2014Text'), notes: t('headSpecialNye2014Notes'), value: 0 # Other gaymerx: event: events.gaymerx, text: t('headSpecialGaymerxText'), notes: t('headSpecialGaymerxNotes'), value: 0 mystery: @@ -649,7 +650,7 @@ api.spells = snowball: text: t('spellSpecialSnowballAuraText') mana: 0 - value: 1 + value: 15 target: 'user' notes: t('spellSpecialSnowballAuraNotes') cast: (user, target) -> @@ -690,6 +691,24 @@ api.spells = user.stats.buffs.spookDust = false user.stats.gp -= 5 + nye: + text: t('nyeCard') + mana: 0 + value: 10 + target: 'user' + notes: t('nyeCardNotes') + cast: (user, target) -> + if user == target + user.achievements.nye ?= 0 + user.achievements.nye++ + else + _.each [user,target], (t)-> + t.achievements.nye ?= 0 + t.achievements.nye++ + (target.items.special.nyeReceived ?= []).push user.profile.name + target.markModified? 'items.special.nyeReceived' + user.stats.gp -= 10 + # Intercept all spells to reduce user.stats.mp after casting the spell _.each api.spells, (spellClass) -> _.each spellClass, (spell, key) -> diff --git a/script/index.coffee b/script/index.coffee index f933389db6..e69b8e00c2 100644 --- a/script/index.coffee +++ b/script/index.coffee @@ -688,15 +688,16 @@ api.wrap = (user, main=true) -> user.items.food[food.key]-- cb? {code:200, message}, userPets[pet] - #FIXME stupid method of special-handling spookDust, since it can be purchased with gold and the system only accomodates gem-purchasable holiday spells - buySpookDust: (req,cb) -> - item = content.special.spookDust + buySpecialSpell: (req,cb) -> + {key} = req.params + item = content.special[key] return cb?({code:401, message: i18n.t('messageNotEnoughGold', req.language)}) if user.stats.gp < item.value user.stats.gp -= item.value - user.items.special.spookDust ?= 0 - user.items.special.spookDust++ + user.items.special[key] ?= 0 + user.items.special[key]++ user.markModified? 'items.special' - cb? null, _.pick(user,$w 'items stats') + message = i18n.t('messageBought', {itemText: item.text(req.language)}, req.language) + cb? {code:200,message}, _.pick(user,$w 'items stats') # buy is for using Gold, purchase is for Gems (I know, I know...) purchase: (req, cb, ga) -> @@ -931,6 +932,11 @@ api.wrap = (user, main=true) -> #cb? {code:200, message:"#{item.text} inside!"}, user.items.gear.owned cb? null, user.items.gear.owned + readNYE: (req,cb) -> + user.items.special.nyeReceived.shift() + user.markModified? 'items.special.nyeReceived' + cb? null, 'items.special' + # ------ # Score # ------