diff options
| author | Chaplain <aionthefirst@gmail.com> | 2011-10-12 01:11:52 +0300 |
|---|---|---|
| committer | Chaplain <aionthefirst@gmail.com> | 2011-10-12 01:11:52 +0300 |
| commit | 3e9611578cb4af6b6f6ec18cc4e8be9ac2f1ef78 (patch) | |
| tree | e5deb67e6abf4a6c499c9b389d0a39ed6ce956a3 /src/server/game/Entities | |
| parent | 44c55f78e0541c69be414fdf6cfa2d178db9efd2 (diff) | |
Core/Spells: SPELL_AURA_MOD_INCREASE_ENERGY_PERCENT improvement
*Now it'll correctly increase\decrease % of power
*Added helper function for modify power with percent ammount
Diffstat (limited to 'src/server/game/Entities')
| -rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 9 | ||||
| -rwxr-xr-x | src/server/game/Entities/Unit/Unit.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 12c3992c980..6e70469df73 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -12384,6 +12384,15 @@ int32 Unit::ModifyPower(Powers power, int32 dVal) return gain; } +// returns negative amount on power reduction +int32 Unit::ModifyPowerPct(Powers power, float pct, bool apply) +{ + float amount = (float)GetMaxPower(power); + ApplyPercentModFloatVar(amount, pct, apply); + + return ModifyPower(power, (int32)amount - (int32)GetMaxPower(power)); +} + bool Unit::isAlwaysVisibleFor(WorldObject const* seer) const { if (WorldObject::isAlwaysVisibleFor(seer)) diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 236f183e3b9..7629050ea8a 100755 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1371,6 +1371,7 @@ class Unit : public WorldObject void SetMaxPower(Powers power, uint32 val); // returns the change in power int32 ModifyPower(Powers power, int32 val); + int32 ModifyPowerPct(Powers power, float pct, bool apply = true); uint32 GetAttackTime(WeaponAttackType att) const { |
