From 13b8326a6ec15b9e91d69d953b6df4c622dbef97 Mon Sep 17 00:00:00 2001 From: Lucas Nicodemus Date: Sun, 1 Jan 2012 02:08:56 -0700 Subject: [PATCH] Add NPCStrike hook --- TShockAPI/GetDataHandlers.cs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index c4f93afb..76fe0b8d 100644 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -576,6 +576,33 @@ namespace TShockAPI return args.Handled; } + public class NPCStrikeEventArgs : HandledEventArgs + { + public byte ID { get; set; } + public byte Direction { get; set; } + public short Damage { get; set; } + public byte PVP { get; set; } + public byte Critical { get; set; } + } + public static HandlerList NPCStrike; + + private static bool OnNPCStrike(byte id, byte dir, short dmg, byte pvp, byte crit) + { + if (NPCStrike == null) + return false; + + var args = new NPCStrikeEventArgs + { + ID = id, + Direction = dir, + Damage = dmg, + PVP = pvp, + Critical = crit, + }; + NPCStrike.Invoke(null, args); + return args.Handled; + } + #endregion public static void InitGetDataHandler() { @@ -1993,6 +2020,9 @@ namespace TShockAPI var pvp = args.Data.ReadInt8(); var crit = args.Data.ReadInt8(); + if (OnNPCStrike(id, direction, dmg, pvp, crit)) + return true; + if (Main.npc[id] == null) return true;