using rjw; using rjwquirks.Modules.Shared.Events; using Verse; namespace rjwquirks.Modules.Quirks.EventHandlers { /// /// Handler that passes RJW events to all quirks of a pawn /// public class QuirkSetRjwEventHandler : RjwEventHandler { public override void HandleEvent(RjwEvent ev) { ev.args.TryGetArg(RjwEventArgNames.Pawn, out Pawn pawn); if (pawn == null && ev.args.TryGetArg(RjwEventArgNames.SexProps, out SexProps props)) { pawn = props.pawn; } if (pawn == null) { ModLog.Error($"QuirkSetRjwEventHandler recieved {ev.def}, but event has neither '{RjwEventArgNames.Pawn}' or '{RjwEventArgNames.SexProps}' argument"); return; } pawn.GetQuirks().NotifyEvent(ev); } } }