Support for UnitEvent and pass to PlayerEvent or CreatureEvent (#313)

This commit is contained in:
iThorgrim
2025-09-17 11:15:03 +02:00
committed by GitHub
parent 972879c696
commit 1153fcaef7
6 changed files with 232 additions and 64 deletions

View File

@@ -1191,6 +1191,39 @@ public:
}
};
class Eluna_UnitScript : public UnitScript
{
public:
Eluna_UnitScript() : UnitScript("Eluna_UnitScript") { }
void OnAuraApply(Unit* unit, Aura* aura) override
{
if (unit->IsPlayer())
sEluna->OnPlayerAuraApply(unit->ToPlayer(), aura);
if (unit->IsCreature())
sEluna->OnCreatureAuraApply(unit->ToCreature(), aura);
}
void OnHeal(Unit* healer, Unit* receiver, uint32& gain) override
{
if (healer->IsPlayer())
sEluna->OnPlayerHeal(healer->ToPlayer(), receiver, gain);
if (healer->IsCreature())
sEluna->OnCreatureHeal(healer->ToCreature(), receiver, gain);
}
void OnDamage(Unit* attacker, Unit* receiver, uint32& damage) override
{
if (attacker->IsPlayer())
sEluna->OnPlayerDamage(attacker->ToPlayer(), receiver, damage);
if (attacker->IsCreature())
sEluna->OnCreatureDamage(attacker->ToCreature(), receiver, damage);
}
};
// Group all custom scripts
void AddSC_ElunaLuaEngine()
{
@@ -1215,4 +1248,5 @@ void AddSC_ElunaLuaEngine()
new Eluna_VehicleScript();
new Eluna_WorldObjectScript();
new Eluna_WorldScript();
new Eluna_UnitScript();
}