internal static void OnDbInit()
 {
     IS_ALLOWED = new Chore.Precondition {
         id          = "IsProfileAllowed",
         description = WorkshopProfilesStrings.DUPLICANTS.CHORES.PRECONDITIONS.
                       ALLOWED_BY_PROFILE,
         fn = IsAllowed
     };
 }
 /// <summary>
 /// Applied after AddPrecondition runs.
 /// </summary>
 internal static void Postfix(Chore __instance, Chore.Precondition precondition,
                              object data)
 {
     // If the chore is of type Work
     if (precondition.id == ChorePreconditions.instance.IsScheduledTime.id &&
         data == Db.Get().ScheduleBlockTypes.Work)
     {
         AddProfilePrecondition(__instance);
     }
 }
Exemple #3
0
 /// <summary>
 /// Applied after AddPrecondition runs.
 /// </summary>
 internal static void Postfix(Chore __instance, Chore.Precondition precondition,
                              object data)
 {
     if (precondition.id == ChorePreconditions.instance.IsScheduledTime.id && (data
                                                                               is ScheduleBlockType type) && type == Work)
     {
         // Any task classified as Work gets our finish time precondition
         __instance.AddPrecondition(CAN_START_NEW, __instance);
     }
 }
Exemple #4
0
        protected static void ModifyChore(Workable instance, Chore chore, Func <Workable, bool> isEndlessWorking)
        {
            var precondition = new Chore.Precondition()
            {
                id          = "RequireAttributeRange",
                fn          = delegate(ref Chore.Precondition.Context context, object data) { return(!isEndlessWorking(instance) || ShouldChoreBeWorked(context)); },
                description = DUPLICANTS.CHORES.PRECONDITIONS.REQUIRES_ATTRIBUTE_RANGE.DESCRIPTION
            };

            chore.AddPrecondition(precondition, null);
        }