diff options
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.h')
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.h | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index df5af95ac30..f603c76c8d3 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -392,7 +392,24 @@ class ItemScript : public ScriptObject virtual bool OnExpire(Player* /*player*/, ItemTemplate const* /*proto*/) { return false; } }; -class CreatureScript : public ScriptObject, public UpdatableScript<Creature> +class UnitScript : public ScriptObject +{ + protected: + + UnitScript(const char* name); + + public: + // Called when DoT's Tick Damage is being Dealt + virtual void ModifyPeriodicDamageAurasTick(Unit* /*target*/, Unit* /*attacker*/, uint32& /*damage*/) { } + + // Called when Melee Damage is being Dealt + virtual void ModifyMeleeDamage(Unit* /*target*/, Unit* /*attacker*/, uint32& /*damage*/) { } + + // Called when Spell Damage is being Dealt + virtual void ModifySpellDamageTaken(Unit* /*target*/, Unit* /*attacker*/, int32& /*damage*/) { } +}; + +class CreatureScript : public UnitScript, public UpdatableScript<Creature> { protected: @@ -583,7 +600,7 @@ class ConditionScript : public ScriptObject virtual bool OnConditionCheck(Condition* /*condition*/, ConditionSourceInfo& /*sourceInfo*/) { return true; } }; -class VehicleScript : public ScriptObject +class VehicleScript : public UnitScript { protected: @@ -654,7 +671,7 @@ class AchievementCriteriaScript : public ScriptObject virtual bool OnCheck(Player* source, Unit* target) = 0; }; -class PlayerScript : public ScriptObject +class PlayerScript : public UnitScript { protected: @@ -1031,6 +1048,12 @@ class ScriptMgr void OnGroupChangeLeader(Group* group, uint64 newLeaderGuid, uint64 oldLeaderGuid); void OnGroupDisband(Group* group); + public: /* UnitScript */ + + void ModifyPeriodicDamageAurasTick(Unit* target, Unit* attacker, uint32& damage); + void ModifyMeleeDamage(Unit* target, Unit* attacker, uint32& damage); + void ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& damage); + public: /* Scheduled scripts */ uint32 IncreaseScheduledScriptsCount() { return ++_scheduledScripts; } |