static bool Prefix(KingdomTask __instance, bool raiseEvent)
            {
                try
                {
                    if (!Main.enabled)
                    {
                        return(true);
                    }
                    if (!Main.settings.currencyFallback)
                    {
                        return(true);
                    }
                    IsStartedSetter(__instance, true);
                    StartedOnSetter(__instance, KingdomState.Instance.CurrentDay);

                    KingdomCurrencyFallback.SpendPoints(__instance.OneTimeBPCost);

                    if (raiseEvent)
                    {
                        OnTaskChanged(__instance);
                    }

                    EventBus.RaiseEvent((IKingdomTaskEventsHandler h) => h.OnTaskStarted(__instance));

                    if (__instance.SkipPlayerTime <= 0)
                    {
                        return(false);
                    }

                    Kingmaker.Game.Instance.AdvanceGameTime(TimeSpan.FromDays(__instance.SkipPlayerTime));

                    foreach (UnitEntityData unitEntityData in Kingmaker.Game.Instance.Player.AllCharacters)
                    {
                        RestController.ApplyRest(unitEntityData.Descriptor);
                    }

                    new KingdomTimelineManager().UpdateTimeline();

                    return(false);
                }
                catch (Exception ex)
                {
                    Main.Error(ex);
                    return(true);
                }
            }
 static List <string> GetTaskInfo(KingdomTask activeTask)
 {
     if (m_TaskInfo == null)
     {
         m_TaskInfo = new List <string>();
         m_TaskInfo.Add($"Name: {activeTask.Name}");
         m_TaskInfo.Add($"StartedOn: {activeTask.StartedOn}");
         m_TaskInfo.Add($"EndsOn: {activeTask.EndsOn}");
         m_TaskInfo.Add($"Duration: {activeTask.Duration}");
         m_TaskInfo.Add($"OneTimeBPCost: {activeTask.OneTimeBPCost}");
         m_TaskInfo.Add($"SkipPlayerTime: {activeTask.SkipPlayerTime}");
         m_TaskInfo.Add($"NeedsIgnore: {activeTask.NeedsIgnore}");
         m_TaskInfo.Add($"IsValid: {activeTask.IsValid}");
         m_TaskInfo.Add($"IsStarted: {activeTask.IsStarted}");
         m_TaskInfo.Add($"IsFinished: {activeTask.IsFinished}");
         m_TaskInfo.Add($"IsInProgress: {activeTask.IsInProgress}");
     }
     return(m_TaskInfo);
 }