From 6d5b57d1393c35a73742e9efa0e2ad94e730aa46 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 18 Jul 2015 08:07:16 -0500 Subject: [PATCH] Add class bonus calc function --- common/script/methods/statCalculations.js | 17 ++++++++++++--- test/common/statCalculations.js | 26 +++++++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/common/script/methods/statCalculations.js b/common/script/methods/statCalculations.js index 7b6826b63f..c5d6ab9a73 100644 --- a/common/script/methods/statCalculations.js +++ b/common/script/methods/statCalculations.js @@ -31,7 +31,18 @@ function equipmentStatBonus(stat, equipped) { return total; } -module.exports = { - levelBonus: levelBonus, - equipmentStatBonus: equipmentStatBonus +function classBonus(user, stat) { + var bonus = user._statsComputed[stat] + - user.stats.buffs[stat] + - levelBonus(user.stats.lvl) + - equipmentStatBonus(stat, user.items.gear.equipped) + - user.stats[stat] + + return bonus; +} + +module.exports = { + classBonus: classBonus, + equipmentStatBonus: equipmentStatBonus, + levelBonus: levelBonus } diff --git a/test/common/statCalculations.js b/test/common/statCalculations.js index 68fa399132..40e0931a82 100644 --- a/test/common/statCalculations.js +++ b/test/common/statCalculations.js @@ -53,4 +53,30 @@ describe('stat calculation functions', function() { expect(perStat).to.eql(24); }); }); + + describe('classBonus', function() { + it('calculates class bonus', function() { + var equippedGear = { + "weapon" : "weapon_warrior_1", + "shield" : "shield_warrior_1", + "head" : "head_warrior_1", + "armor" : "armor_warrior_1" + }; + var user = { + _statsComputed: { str: 50 }, + stats: { + lvl: 10, + buffs: { str: 10 }, + str: 10 + }, + items: { + gear: { equipped: equippedGear } + } + }; + var stat = 'str'; + var classBonus = statCalc.classBonus(user, stat); + + expect(classBonus).to.eql(20) + }); + }); });