From fe9666d5eedc486d1f527d105753621ed0db58dd Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Tue, 9 Jun 2015 10:47:59 -0500 Subject: [PATCH 1/4] fix(achievements): Never strip Ultimate Gear Fixes #5369. --- common/script/index.coffee | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/common/script/index.coffee b/common/script/index.coffee index b1e1ec5177..4983d83bde 100644 --- a/common/script/index.coffee +++ b/common/script/index.coffee @@ -1692,10 +1692,11 @@ 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) -> - 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) - , true # start with true, else `and` will fail right away + if user.achievements.ultimateGearSets[klass] is not 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) + , true # start with true, else `and` will fail right away user.markModified? 'achievements.ultimateGearSets' if _.contains(user.achievements.ultimateGearSets, true) and user.flags.armoireEnabled != true user.flags.armoireEnabled = true From 8a6aa0ed6c14a8015d8e44a1708eb919751067a8 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Tue, 9 Jun 2015 11:01:11 -0500 Subject: [PATCH 2/4] test(achievements): Ultimate Gear persistence --- test/common/algos.mocha.coffee | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/common/algos.mocha.coffee b/test/common/algos.mocha.coffee index 696d4b78f9..f48d27bf19 100644 --- a/test/common/algos.mocha.coffee +++ b/test/common/algos.mocha.coffee @@ -598,6 +598,11 @@ describe 'User', -> xit 'gets ultimateGear ' + klass, -> expect(user.achievements.ultimateGearSets[klass]).to.be.ok() + it 'does not remove existing Ultimate Gear achievements', -> + user.items.gear.owned.shield_warrior_5 = false + user.fns.ultimateGear() + expect(user.achievements.ultimateGearSets).to.eql {'healer':true,'wizard':true,'rogue':true,'warrior':true} + it 'does not get beastMaster if user has less than 90 drop pets', -> user = newUser() user.items.pets = {'Wolf-White': 1, 'Wolf-Desert': 1, 'Wolf-Red': 1, 'Wolf-Shade': 1, 'Wolf-Skeleton': 1, 'Wolf-Zombie': 1, 'Wolf-CottonCandyPink': 1, 'Wolf-CottonCandyBlue': 1, 'Wolf-Golden': 1, 'TigerCub-Base': 1, 'TigerCub-White': 1, 'TigerCub-Desert': 1, 'TigerCub-Red': 1, 'TigerCub-Shade': 1, 'TigerCub-Skeleton': 1, 'TigerCub-Zombie': 1, 'TigerCub-CottonCandyPink': 1, 'TigerCub-CottonCandyBlue': 1, 'TigerCub-Golden': 1, 'PandaCub-Base': 1, 'PandaCub-White': 1, 'PandaCub-Desert': 1, 'PandaCub-Red': 1, 'PandaCub-Shade': 1, 'PandaCub-Skeleton': 1, 'PandaCub-Zombie': 1, 'PandaCub-CottonCandyPink': 1, 'PandaCub-CottonCandyBlue': 1, 'PandaCub-Golden': 1, 'LionCub-Base': 1, 'LionCub-White': 1, 'LionCub-Desert': 1, 'LionCub-Red': 1, 'LionCub-Shade': 1, 'LionCub-Skeleton': 1, 'LionCub-Zombie': 1, 'LionCub-CottonCandyPink': 1, 'LionCub-CottonCandyBlue': 1, 'LionCub-Golden': 1, 'Fox-Base': 1, 'Fox-White': 1, 'Fox-Desert': 1, 'Fox-Red': 1, 'Fox-Shade': 1, 'Fox-Skeleton': 1, 'Fox-Zombie': 1, 'Fox-CottonCandyPink': 1, 'Fox-CottonCandyBlue': 1, 'Fox-Golden': 1, 'FlyingPig-Base': 1, 'FlyingPig-White': 1, 'FlyingPig-Desert': 1, 'FlyingPig-Red': 1, 'FlyingPig-Shade': 1, 'FlyingPig-Skeleton': 1, 'FlyingPig-Zombie': 1, 'FlyingPig-CottonCandyPink': 1, 'FlyingPig-CottonCandyBlue': 1, 'FlyingPig-Golden': 1, 'Dragon-Base': 1, 'Dragon-White': 1, 'Dragon-Desert': 1, 'Dragon-Red': 1, 'Dragon-Shade': 1, 'Dragon-Skeleton': 1, 'Dragon-Zombie': 1, 'Dragon-CottonCandyPink': 1, 'Dragon-CottonCandyBlue': 1, 'Dragon-Golden': 1, 'Cactus-Base': 1, 'Cactus-White': 1, 'Cactus-Desert': 1, 'Cactus-Red': 1, 'Cactus-Shade': 1, 'Cactus-Skeleton': 1, 'Cactus-Zombie': 1, 'Cactus-CottonCandyPink': 1, 'Cactus-CottonCandyBlue': 1, 'Cactus-Golden': 1, 'BearCub-Base': 1, 'BearCub-White': 1, 'BearCub-Desert': 1, 'BearCub-Red': 1, 'BearCub-Shade': 1, 'BearCub-Skeleton': 1, 'BearCub-Zombie': 1, 'BearCub-CottonCandyPink': 1, 'BearCub-CottonCandyBlue': 1, 'BearCub-Golden': 1 } From 62eea3d9286c8f3fcade41971230c10a4b0d1ba5 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Tue, 9 Jun 2015 11:05:25 -0500 Subject: [PATCH 3/4] fix(test): Group Ultimate Gear tests --- test/common/algos.mocha.coffee | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/test/common/algos.mocha.coffee b/test/common/algos.mocha.coffee index f48d27bf19..03cf070fdb 100644 --- a/test/common/algos.mocha.coffee +++ b/test/common/algos.mocha.coffee @@ -597,11 +597,10 @@ describe 'User', -> user.ops.buy {params:'#{type}_#{klass}_6'} xit 'gets ultimateGear ' + klass, -> expect(user.achievements.ultimateGearSets[klass]).to.be.ok() - - it 'does not remove existing Ultimate Gear achievements', -> - user.items.gear.owned.shield_warrior_5 = false - user.fns.ultimateGear() - expect(user.achievements.ultimateGearSets).to.eql {'healer':true,'wizard':true,'rogue':true,'warrior':true} + it 'does not remove existing Ultimate Gear achievements', -> + user.items.gear.owned.shield_warrior_5 = false + user.fns.ultimateGear() + expect(user.achievements.ultimateGearSets).to.eql {'healer':true,'wizard':true,'rogue':true,'warrior':true} it 'does not get beastMaster if user has less than 90 drop pets', -> user = newUser() From 413b01348dce16a66650d8e77e2db7fea46119a2 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Tue, 9 Jun 2015 11:22:45 -0500 Subject: [PATCH 4/4] fix(test): Ultimate Gear passing --- test/common/algos.mocha.coffee | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/test/common/algos.mocha.coffee b/test/common/algos.mocha.coffee index 03cf070fdb..1f02d94628 100644 --- a/test/common/algos.mocha.coffee +++ b/test/common/algos.mocha.coffee @@ -24,6 +24,7 @@ newUser = (addTasks=true)-> gear: equipped: {} costume: {} + owned: {} party: quest: progress: @@ -597,10 +598,14 @@ describe 'User', -> user.ops.buy {params:'#{type}_#{klass}_6'} xit 'gets ultimateGear ' + klass, -> expect(user.achievements.ultimateGearSets[klass]).to.be.ok() - it 'does not remove existing Ultimate Gear achievements', -> - user.items.gear.owned.shield_warrior_5 = false - user.fns.ultimateGear() - expect(user.achievements.ultimateGearSets).to.eql {'healer':true,'wizard':true,'rogue':true,'warrior':true} + + it 'does not remove existing Ultimate Gear achievements', -> + user = newUser() + user.achievements.ultimateGearSets = {'healer':true,'wizard':true,'rogue':true,'warrior':true} + user.items.gear.owned.shield_warrior_5 = false + user.items.gear.owned.weapon_rogue_6 = false + user.ops.buy {params:'shield_warrior_5'} + expect(user.achievements.ultimateGearSets).to.eql {'healer':true,'wizard':true,'rogue':true,'warrior':true} it 'does not get beastMaster if user has less than 90 drop pets', -> user = newUser()