From cae267c0fafa2061180e4f5b3d54675ded2be2c7 Mon Sep 17 00:00:00 2001 From: Oliver Eyton-Williams Date: Wed, 18 Nov 2015 11:59:31 +0100 Subject: [PATCH 1/3] Two-handed weapons no longer automatically equip unless desired. --- common/script/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/script/index.js b/common/script/index.js index 6a3558f937..5bc5044492 100644 --- a/common/script/index.js +++ b/common/script/index.js @@ -1558,9 +1558,9 @@ api.wrap = function(user, main) { } else { if (user.preferences.autoEquip) { user.items.gear.equipped[item.type] = item.key; + message = user.fns.handleTwoHanded(item, null, req); } user.items.gear.owned[item.key] = true; - message = user.fns.handleTwoHanded(item, null, req); if (message == null) { message = i18n.t('messageBought', { itemText: item.text(req.language) From 570d7c3c760111ee8411f2184dbc1c1f0dbf46de Mon Sep 17 00:00:00 2001 From: Oliver Eyton-Williams Date: Wed, 18 Nov 2015 16:41:06 +0100 Subject: [PATCH 2/3] Added tests for buying two-handed weapons --- test/common/user.fns.buy.test.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/test/common/user.fns.buy.test.js b/test/common/user.fns.buy.test.js index f756ce0c83..f348a61cdb 100644 --- a/test/common/user.fns.buy.test.js +++ b/test/common/user.fns.buy.test.js @@ -102,7 +102,35 @@ describe('user.fns.buy', function() { expect(user.items.gear.equipped).to.not.have.property('armor'); }); + + it('removes one-handed weapon and shield if auto-equip is on and a two-hander is bought', function() { + user.stats.gp = 100; + user.preferences.autoEquip = true; + user.ops.buy({params: {key: 'shield_warrior_1'}}); + user.ops.equip({params: {key: 'shield_warrior_1'}}); + user.ops.buy({params: {key: 'weapon_warrior_1'}}); + user.ops.equip({params: {key: 'weapon_warrior_1'}}); + + user.ops.buy({params: {key: 'weapon_wizard_1'}}); + expect(user.items.gear.equipped).to.have.property('shield', 'shield_base_0'); + expect(user.items.gear.equipped).to.have.property('weapon', 'weapon_wizard_1'); + }); + + it('buys two-handed equipment but does not automatically remove sword or shield', function() { + user.stats.gp = 100; + user.preferences.autoEquip = false; + user.ops.buy({params: {key: 'shield_warrior_1'}}); + user.ops.equip({params: {key: 'shield_warrior_1'}}); + user.ops.buy({params: {key: 'weapon_warrior_1'}}); + user.ops.equip({params: {key: 'weapon_warrior_1'}}); + + user.ops.buy({params: {key: 'weapon_wizard_1'}}); + + expect(user.items.gear.equipped).to.have.property('shield', 'shield_warrior_1'); + expect(user.items.gear.equipped).to.have.property('weapon', 'weapon_warrior_1'); + }); + it('does not buy equipment without enough Gold', function() { user.stats.gp = 20; From 9bda5657d28de7cf3033b82f447d4c9640f01be1 Mon Sep 17 00:00:00 2001 From: Oliver Eyton-Williams Date: Wed, 25 Nov 2015 12:40:40 +0100 Subject: [PATCH 3/3] Fixed syntax for linter. --- test/common/user.fns.buy.test.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/test/common/user.fns.buy.test.js b/test/common/user.fns.buy.test.js index 94ace92a0a..a4b067f9f4 100644 --- a/test/common/user.fns.buy.test.js +++ b/test/common/user.fns.buy.test.js @@ -100,35 +100,35 @@ describe('user.fns.buy', () => { expect(user.items.gear.equipped).to.not.have.property('armor'); }); - - it('removes one-handed weapon and shield if auto-equip is on and a two-hander is bought', () => { + + it('removes one-handed weapon and shield if auto-equip is on and a two-hander is bought', () => { user.stats.gp = 100; user.preferences.autoEquip = true; user.ops.buy({params: {key: 'shield_warrior_1'}}); - user.ops.equip({params: {key: 'shield_warrior_1'}}); + user.ops.equip({params: {key: 'shield_warrior_1'}}); user.ops.buy({params: {key: 'weapon_warrior_1'}}); - user.ops.equip({params: {key: 'weapon_warrior_1'}}); - + user.ops.equip({params: {key: 'weapon_warrior_1'}}); + user.ops.buy({params: {key: 'weapon_wizard_1'}}); expect(user.items.gear.equipped).to.have.property('shield', 'shield_base_0'); expect(user.items.gear.equipped).to.have.property('weapon', 'weapon_wizard_1'); - }); + }); it('buys two-handed equipment but does not automatically remove sword or shield', () => { user.stats.gp = 100; user.preferences.autoEquip = false; user.ops.buy({params: {key: 'shield_warrior_1'}}); - user.ops.equip({params: {key: 'shield_warrior_1'}}); + user.ops.equip({params: {key: 'shield_warrior_1'}}); user.ops.buy({params: {key: 'weapon_warrior_1'}}); - user.ops.equip({params: {key: 'weapon_warrior_1'}}); - + user.ops.equip({params: {key: 'weapon_warrior_1'}}); + user.ops.buy({params: {key: 'weapon_wizard_1'}}); expect(user.items.gear.equipped).to.have.property('shield', 'shield_warrior_1'); expect(user.items.gear.equipped).to.have.property('weapon', 'weapon_warrior_1'); }); - + it('does not buy equipment without enough Gold', () => { user.stats.gp = 20;