public static void InvokeCorpseAction(CorpseActionEventArgs args) { if (CorpseAction != null) { CorpseAction(args); } }
/// <summary> /// Grants EoC for certain corpse actions, such as looting an item /// </summary> private static void OnCorpseAction(CorpseActionEventArgs args) { Corpse c = args.Corpse; Mobile corpseOwner = c.Owner; Player p = args.Player; if (c == null || corpseOwner == null || p == null) { return; } switch (args.Action) { case CorpseActionEventArgs.CorpseAction.Opened: p.EssenceOfCharacter++; EoCTable[p].OpenCorpses.Add(c); break; case CorpseActionEventArgs.CorpseAction.Looted: if (corpseOwner != null && corpseOwner.Player) { p.EssenceOfCharacter++; if (EoCTable[p].OpenCorpses.Contains(c)) { EoCTable[p].OpenCorpses.Remove(c); } } break; case CorpseActionEventArgs.CorpseAction.Closed: case CorpseActionEventArgs.CorpseAction.Deleted: if (EoCTable[p].OpenCorpses.Contains(c)) { if (corpseOwner != null && corpseOwner.Player) { p.EssenceOfCharacter += 10; } EoCTable[p].OpenCorpses.Remove(c); } break; case CorpseActionEventArgs.CorpseAction.Carved: if (corpseOwner != null && corpseOwner is BaseCreature) { p.EssenceOfCharacter++; } break; } }
public static void InvokeCorpseAction( CorpseActionEventArgs args ) { if( CorpseAction != null ) CorpseAction(args); }