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); }