summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/Entities/Unit/StatSystem.cpp2
-rw-r--r--src/game/Scripting/ScriptMgr.cpp5
-rw-r--r--src/game/Scripting/ScriptMgr.h2
3 files changed, 9 insertions, 0 deletions
diff --git a/src/game/Entities/Unit/StatSystem.cpp b/src/game/Entities/Unit/StatSystem.cpp
index e43cab614a..6800d0cc4e 100644
--- a/src/game/Entities/Unit/StatSystem.cpp
+++ b/src/game/Entities/Unit/StatSystem.cpp
@@ -312,6 +312,8 @@ void Player::UpdateAttackPowerAndDamage(bool ranged)
{
float val2 = 0.0f;
float level = float(getLevel());
+
+ sScriptMgr->OnBeforeUpdateAttackPowerAndDamage(this, level, val2, ranged);
UnitMods unitMod = ranged ? UNIT_MOD_ATTACK_POWER_RANGED : UNIT_MOD_ATTACK_POWER;
diff --git a/src/game/Scripting/ScriptMgr.cpp b/src/game/Scripting/ScriptMgr.cpp
index 0265d4d5c6..453e56ea3e 100644
--- a/src/game/Scripting/ScriptMgr.cpp
+++ b/src/game/Scripting/ScriptMgr.cpp
@@ -1555,6 +1555,11 @@ void ScriptMgr::OnAfterUpdateMaxHealth(Player* player, float& value)
FOREACH_SCRIPT(PlayerScript)->OnAfterUpdateMaxHealth(player, value);
}
+void ScriptMgr::OnBeforeUpdateAttackPowerAndDamage(Player* player, float& level, float& val2, bool ranged)
+{
+ FOREACH_SCRIPT(PlayerScript)->OnBeforeUpdateAttackPowerAndDamage(player, level, val2, ranged);
+}
+
void ScriptMgr::OnAfterUpdateAttackPowerAndDamage(Player* player, float& level, float& base_attPower, float& attPowerMod, float& attPowerMultiplier, bool ranged)
{
FOREACH_SCRIPT(PlayerScript)->OnAfterUpdateAttackPowerAndDamage(player, level, base_attPower, attPowerMod, attPowerMultiplier, ranged);
diff --git a/src/game/Scripting/ScriptMgr.h b/src/game/Scripting/ScriptMgr.h
index 83c24a8cc3..c75a1dbe7d 100644
--- a/src/game/Scripting/ScriptMgr.h
+++ b/src/game/Scripting/ScriptMgr.h
@@ -894,6 +894,7 @@ class PlayerScript : public ScriptObject
virtual void OnAfterUpdateMaxHealth(Player* /*player*/, float& /*value*/) { }
+ virtual void OnBeforeUpdateAttackPowerAndDamage(Player* /*player*/, float& /*level*/, float& /*val2*/, bool /*ranged*/) { }
virtual void OnAfterUpdateAttackPowerAndDamage(Player* /*player*/, float& /*level*/, float& /*base_attPower*/, float& /*attPowerMod*/, float& /*attPowerMultiplier*/, bool /*ranged*/) { }
};
@@ -1209,6 +1210,7 @@ class ScriptMgr
void OnAfterStoreOrEquipNewItem(Player* player, uint32 vendorslot, uint32 &item, uint8 count, uint8 bag, uint8 slot, ItemTemplate const* pProto, Creature* pVendor, VendorItem const* crItem, bool bStore);
void OnAfterUpdateMaxPower(Player* player, Powers& power, float& value);
void OnAfterUpdateMaxHealth(Player* player, float& value);
+ void OnBeforeUpdateAttackPowerAndDamage(Player* player, float& level, float& val2, bool ranged);
void OnAfterUpdateAttackPowerAndDamage(Player* player, float& level, float& base_attPower, float& attPowerMod, float& attPowerMultiplier, bool ranged);
public: /* GuildScript */