public void BeginChore()
        {
            Chore nextChore = GetNextChore();
            Chore chore     = base.smi.sm.currentChore.Set(nextChore, base.smi);

            if (chore != null && chore.IsPreemptable && (UnityEngine.Object)chore.driver != (UnityEngine.Object)null)
            {
                chore.Fail("Preemption!");
            }
            base.smi.sm.nextChore.Set(null, base.smi);
            Chore chore2 = chore;

            chore2.onExit = (Action <Chore>)Delegate.Combine(chore2.onExit, new Action <Chore>(OnChoreExit));
            chore.Begin(base.master.context);
            Trigger(-1988963660, chore);
        }