Merge pull request #5433 from gisikw/ultimate-gear-fix

Ultimate gear fix
This commit is contained in:
Blade Barringer 2015-06-20 17:34:47 -05:00
commit 96162b37bd
2 changed files with 33 additions and 3 deletions

View file

@ -698,7 +698,7 @@ api.wrap = (user, main=true) ->
pd.push(item) unless i != -1
cb? null, user.pushDevices
# ------
# Inbox
# ------
@ -1580,7 +1580,7 @@ api.wrap = (user, main=true) ->
_.merge plan.consecutive, {count:0, offset:0, gemCapExtra:0}
user.markModified? 'purchased.plan'
# User is resting at the inn.
# User is resting at the inn.
# On cron, buffs are cleared and all dailies are reset without performing damage
if user.preferences.sleep is true
user.stats.buffs = clearBuffs
@ -1716,7 +1716,7 @@ api.wrap = (user, main=true) ->
owned = if window? then user.items.gear.owned else user.items.gear.owned.toObject()
user.achievements.ultimateGearSets ?= {healer: false, wizard: false, rogue: false, warrior: false}
content.classes.forEach (klass) ->
if user.achievements.ultimateGearSets[klass] is not true
if user.achievements.ultimateGearSets[klass] isnt true
user.achievements.ultimateGearSets[klass] = _.reduce ['armor', 'shield', 'head', 'weapon'], (soFarGood, type) ->
found = _.find content.gear.tree[type][klass], {last:true}
soFarGood and (!found or owned[found.key]==true) #!found only true when weapon is two-handed (mages)

30
test/common/user.fns.js Normal file
View file

@ -0,0 +1,30 @@
'use strict';
var shared = require('../../common/script/index.coffee');
shared.i18n.translations = require('../../website/src/i18n.js').translations
require('./test_helper');
describe('User.fns', function() {
describe('.ultimateGear', function() {
it('sets armoirEnabled when partial achievement already achieved', function() {
var user = shared.wrap({
items: { gear: { owned: {
toObject: function() { return {
armor_warrior_5: true,
shield_warrior_5: true,
head_warrior_5: true,
weapon_warrior_6: true
}}
}}},
achievements: {
ultimateGearSets: {}
},
flags: {}
});
user.fns.ultimateGear();
expect(user.flags.armoireEnabled).to.equal(true);
});
});
});