mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 16:38:42 +01:00
Core/Scripts: Change PlayerScript and CreatureScript inheritance
Remove UnitScript from PlayerScript and CreatureScript classes as that's how the original system that was PR'd worked, see https://github.com/TrinityCore/TrinityCore/pull/7867 for reference. Please note these are used as global hooks and should really just invoke stateless functions. If you need to hook methods from PlayerScript/CreatureScript and UnitScript, just define 2 different scripts (this is how the original system worked and how it was designed to work)
This commit is contained in:
committed by
Ovahlord
parent
316986765f
commit
ac8bf86755
@@ -2086,37 +2086,31 @@ void ScriptMgr::OnGroupDisband(Group* group)
|
||||
void ScriptMgr::OnHeal(Unit* healer, Unit* reciever, uint32& gain)
|
||||
{
|
||||
FOREACH_SCRIPT(UnitScript)->OnHeal(healer, reciever, gain);
|
||||
FOREACH_SCRIPT(PlayerScript)->OnHeal(healer, reciever, gain);
|
||||
}
|
||||
|
||||
void ScriptMgr::OnDamage(Unit* attacker, Unit* victim, uint32& damage)
|
||||
{
|
||||
FOREACH_SCRIPT(UnitScript)->OnDamage(attacker, victim, damage);
|
||||
FOREACH_SCRIPT(PlayerScript)->OnDamage(attacker, victim, damage);
|
||||
}
|
||||
|
||||
void ScriptMgr::ModifyPeriodicDamageAurasTick(Unit* target, Unit* attacker, uint32& damage)
|
||||
{
|
||||
FOREACH_SCRIPT(UnitScript)->ModifyPeriodicDamageAurasTick(target, attacker, damage);
|
||||
FOREACH_SCRIPT(PlayerScript)->ModifyPeriodicDamageAurasTick(target, attacker, damage);
|
||||
}
|
||||
|
||||
void ScriptMgr::ModifyMeleeDamage(Unit* target, Unit* attacker, uint32& damage)
|
||||
{
|
||||
FOREACH_SCRIPT(UnitScript)->ModifyMeleeDamage(target, attacker, damage);
|
||||
FOREACH_SCRIPT(PlayerScript)->ModifyMeleeDamage(target, attacker, damage);
|
||||
}
|
||||
|
||||
void ScriptMgr::ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& damage)
|
||||
{
|
||||
FOREACH_SCRIPT(UnitScript)->ModifySpellDamageTaken(target, attacker, damage);
|
||||
FOREACH_SCRIPT(PlayerScript)->ModifySpellDamageTaken(target, attacker, damage);
|
||||
}
|
||||
|
||||
void ScriptMgr::ModifyVehiclePassengerExitPos(Unit* passenger, Vehicle* vehicle, Position& pos)
|
||||
{
|
||||
FOREACH_SCRIPT(UnitScript)->ModifyVehiclePassengerExitPos(passenger, vehicle, pos);
|
||||
FOREACH_SCRIPT(CreatureScript)->ModifyVehiclePassengerExitPos(passenger, vehicle, pos);
|
||||
}
|
||||
|
||||
SpellScriptLoader::SpellScriptLoader(char const* name)
|
||||
@@ -2143,11 +2137,10 @@ FormulaScript::FormulaScript(char const* name)
|
||||
ScriptRegistry<FormulaScript>::Instance()->AddScript(this);
|
||||
}
|
||||
|
||||
UnitScript::UnitScript(char const* name, bool addToScripts)
|
||||
UnitScript::UnitScript(char const* name)
|
||||
: ScriptObject(name)
|
||||
{
|
||||
if (addToScripts)
|
||||
ScriptRegistry<UnitScript>::Instance()->AddScript(this);
|
||||
ScriptRegistry<UnitScript>::Instance()->AddScript(this);
|
||||
}
|
||||
|
||||
WorldMapScript::WorldMapScript(char const* name, uint32 mapId)
|
||||
@@ -2193,7 +2186,7 @@ ItemScript::ItemScript(char const* name)
|
||||
}
|
||||
|
||||
CreatureScript::CreatureScript(char const* name)
|
||||
: UnitScript(name, false)
|
||||
: ScriptObject(name)
|
||||
{
|
||||
ScriptRegistry<CreatureScript>::Instance()->AddScript(this);
|
||||
}
|
||||
@@ -2287,7 +2280,7 @@ AchievementCriteriaScript::AchievementCriteriaScript(char const* name)
|
||||
}
|
||||
|
||||
PlayerScript::PlayerScript(char const* name)
|
||||
: UnitScript(name, false)
|
||||
: ScriptObject(name)
|
||||
{
|
||||
ScriptRegistry<PlayerScript>::Instance()->AddScript(this);
|
||||
}
|
||||
|
||||
@@ -390,7 +390,7 @@ class TC_GAME_API UnitScript : public ScriptObject
|
||||
{
|
||||
protected:
|
||||
|
||||
UnitScript(char const* name, bool addToScripts = true);
|
||||
UnitScript(char const* name);
|
||||
|
||||
public:
|
||||
// Called when a unit deals healing to another unit
|
||||
@@ -412,14 +412,13 @@ class TC_GAME_API UnitScript : public ScriptObject
|
||||
virtual void ModifyVehiclePassengerExitPos(Unit* /*passenger*/, Vehicle* /*vehicle*/, Position& /*pos*/) { }
|
||||
};
|
||||
|
||||
class TC_GAME_API CreatureScript : public UnitScript
|
||||
class TC_GAME_API CreatureScript : public ScriptObject
|
||||
{
|
||||
protected:
|
||||
|
||||
CreatureScript(char const* name);
|
||||
|
||||
public:
|
||||
|
||||
// Called when a CreatureAI object is needed for the creature.
|
||||
virtual CreatureAI* GetAI(Creature* /*creature*/) const = 0;
|
||||
};
|
||||
@@ -609,7 +608,7 @@ class TC_GAME_API AchievementCriteriaScript : public ScriptObject
|
||||
virtual bool OnCheck(Player* source, Unit* target) = 0;
|
||||
};
|
||||
|
||||
class TC_GAME_API PlayerScript : public UnitScript
|
||||
class TC_GAME_API PlayerScript : public ScriptObject
|
||||
{
|
||||
protected:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user