From b268b51d0ef991b73c140a680aebca582fc10e00 Mon Sep 17 00:00:00 2001 From: Liberate Date: Wed, 19 Oct 2011 13:00:22 +0200 Subject: Core/Spells: Add Block Value cap to Shield Slam and Shield of Righteousness. Fixes #599 Fixes #2119 --- src/server/game/Entities/Unit/Unit.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/server/game/Entities/Unit') diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index d35298b9963..064542bb013 100755 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1503,6 +1503,20 @@ class Unit : public WorldObject } virtual uint32 GetShieldBlockValue() const =0; + uint32 GetShieldBlockValue(uint32 soft_cap, uint32 hard_cap) const + { + uint32 value = GetShieldBlockValue(); + if (value >= hard_cap) + { + value = (soft_cap + hard_cap) / 2; + } + else if (value > soft_cap) + { + value = soft_cap + ((value - soft_cap) / 2); + } + + return value; + } uint32 GetUnitMeleeSkill(Unit const* target = NULL) const { return (target ? getLevelForTarget(target) : getLevel()) * 5; } uint32 GetDefenseSkillValue(Unit const* target = NULL) const; uint32 GetWeaponSkillValue(WeaponAttackType attType, Unit const* target = NULL) const; -- cgit v1.2.3