Esempio n. 1
0
            public void RunPreconditions()
            {
                if (chore.debug)
                {
                    int num = 0;
                    num++;
                    if (consumerState.consumer.debug)
                    {
                        num++;
                        Debugger.Break();
                    }
                }
                if (chore.arePreconditionsDirty)
                {
                    chore.preconditions.Sort((PreconditionInstance x, PreconditionInstance y) => x.sortOrder.CompareTo(y.sortOrder));
                    chore.arePreconditionsDirty = false;
                }
                int num2 = 0;

                while (true)
                {
                    if (num2 >= chore.preconditions.Count)
                    {
                        return;
                    }
                    PreconditionInstance preconditionInstance = chore.preconditions[num2];
                    if (!preconditionInstance.fn(ref this, preconditionInstance.data))
                    {
                        break;
                    }
                    num2++;
                }
                failedPreconditionId = num2;
            }
Esempio n. 2
0
 public bool IsPotentialSuccess()
 {
     if (IsSuccess())
     {
         return(true);
     }
     if ((UnityEngine.Object)chore.driver == (UnityEngine.Object)consumerState.choreDriver)
     {
         return(true);
     }
     if (failedPreconditionId != -1)
     {
         if (failedPreconditionId >= 0 && failedPreconditionId < chore.preconditions.Count)
         {
             PreconditionInstance preconditionInstance = chore.preconditions[failedPreconditionId];
             return(preconditionInstance.id == ChorePreconditions.instance.IsMoreSatisfyingLate.id);
         }
         DebugUtil.DevLogErrorFormat("failedPreconditionId out of range {0}/{1}", failedPreconditionId, chore.preconditions.Count);
     }
     return(false);
 }