diff options
author | Spp <spp@jorge.gr> | 2012-12-17 12:13:51 +0100 |
---|---|---|
committer | Spp <spp@jorge.gr> | 2012-12-17 12:13:51 +0100 |
commit | a227a3494766103cf6805cf52839612854c2767b (patch) | |
tree | 80519e3484d4b7deaf36d944caf2bb1a3a254e88 /src/server/game/Scripting/ScriptMgr.h | |
parent | 70b542a88cef4f33a793d87665a1e0ebd179c5ab (diff) | |
parent | 5a52acbe40c2a455419b43bbfdda82709a1cbe80 (diff) |
Merge branch 'master' into 4.3.4
Conflicts:
src/server/game/AI/CoreAI/PetAI.cpp
src/server/game/Entities/Player/Player.cpp
src/server/game/Handlers/QuestHandler.cpp
src/server/game/Spells/SpellEffects.cpp
src/server/scripts/EasternKingdoms/stormwind_city.cpp
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.h')
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.h | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 22625d74e10..17cc3844605 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -68,8 +68,6 @@ struct OutdoorPvPData; #define VISIBLE_RANGE 166.0f //MAX visible range (size of grid) -// Generic scripting text function. -void DoScriptText(int32 textEntry, WorldObject* pSource, Unit* target = NULL); /* TODO: Add more script type classes. @@ -393,7 +391,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: @@ -584,7 +599,7 @@ class ConditionScript : public ScriptObject virtual bool OnConditionCheck(Condition* /*condition*/, ConditionSourceInfo& /*sourceInfo*/) { return true; } }; -class VehicleScript : public ScriptObject +class VehicleScript : public UnitScript { protected: @@ -655,7 +670,7 @@ class AchievementCriteriaScript : public ScriptObject virtual bool OnCheck(Player* source, Unit* target) = 0; }; -class PlayerScript : public ScriptObject +class PlayerScript : public UnitScript { protected: @@ -1032,6 +1047,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; } |