Inheritance: HookEventArgs
        public static bool OnNoonWorkEnableCheck(out bool result, int workID, Maid maid)
        {
            WorkEventArgs args = new WorkEventArgs
            {
                Tag               = MaidChangeType.NoonWorkId,
                CallerMaid        = maid,
                CheckCalledTarget = false,
                ForceEnabled      = false,
                ID = workID
            };

            CheckWorkEnabled?.Invoke(null, args);
            result = args.ForceEnabled;
            return(args.ForceEnabled);
        }
        private void OnWorkEnabledCheck(object sender, WorkEventArgs args)
        {
            if (args.CallerMaid == null)
                return;
            if (!IsMaidLoaded(args.CallerMaid))
                return;

            switch (args.Tag)
            {
                case MaidChangeType.NoonWorkId:
                    args.ForceEnabled = GetMaidInfo(args.CallerMaid).IsNoonWorkForceEnabled(args.ID);
                    break;
                case MaidChangeType.NightWorkId:
                    args.ForceEnabled = GetMaidInfo(args.CallerMaid).IsNightWorkForceEnabled(args.ID);
                    break;
            }
            Debugger.WriteLine(
            LogLevel.Info,
            $"Attempting to check work enabled: ID={args.ID}, Force={args.ForceEnabled}");
        }
 public static bool OnNoonWorkEnableCheck(out bool result, int workID, Maid maid)
 {
     WorkEventArgs args = new WorkEventArgs
     {
         Tag = MaidChangeType.NoonWorkId,
         CallerMaid = maid,
         CheckCalledTarget = false,
         ForceEnabled = false,
         ID = workID
     };
     CheckWorkEnabled?.Invoke(args);
     result = args.ForceEnabled;
     return args.ForceEnabled;
 }