feat: Adds PlayerDeathEvent and CreatureDeathEvent using code generated events (#1927)

### Summary
- Adds [Code Generated Events](https://github.com/modernuo/CodeGeneratedEvents)
- Removes EventSink.PlayerDeath
- Adds `PlayerDeathEvent` and `CreatureDeathEvent` using code generated events

> [!Important]
> **Developer Note**
> Use `[OnEvent(nameof(PlayerMobile.PlayerDeathEvent))]` instead of `EventSink.PlayerDeath` delegate
> Check this commit for examples of how to use this.
This commit is contained in:
Guyute 2024-09-06 00:23:03 -04:00 • committed by GitHub
parent d5984ce058
commit 95cd8749a3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
26 changed files with 191 additions and 135 deletions

View file

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using ModernUO.CodeGeneratedEvents;
using Server.Gumps;
using Server.Mobiles;
using Server.Targeting;
@ -70,17 +71,14 @@ namespace Server.Spells.Spellweaving
}
}
public static void Initialize()
{
EventSink.PlayerDeath += HandleDeath;
}
public override void OnCast()
{
Caster.Target = new SpellTarget<Mobile>(this, TargetFlags.Beneficial);
}
public static void HandleDeath(Mobile m)
[OnEvent(nameof(BaseCreature.CreatureDeathEvent))]
[OnEvent(nameof(PlayerMobile.PlayerDeathEvent))]
public static void OnDeathEvent(Mobile m)
{
if (_table.ContainsKey(m))
{
@ -130,16 +128,6 @@ namespace Server.Spells.Spellweaving
timer.DoExpire();
}
public static void OnLogin(Mobile m)
{
if (m?.Alive != false || _table[m] == null)
{
return;
}
HandleDeath_OnCallback(m);
}
private class ExpireTimer : Timer
{
private Mobile _mobile;