protected override IEnumerable <Toil> MakeNewToils()
        {
            this.FailOnDespawnedOrNull(TargetIndex.B);
            yield return(Toils_Goto.Goto(TargetIndex.B, this.PathEndMode));

            Toil doWork = new Toil();

            doWork.initAction = delegate()
            {
                this.workLeft = 65f;
            };
            doWork.tickAction = delegate()
            {
                float statValue = doWork.actor.GetStatValue(StatDefOf.ConstructionSpeed, true);
                this.workLeft -= statValue;
                if (this.workLeft <= 0f)
                {
                    this.DoEffect();
                    this.ReadyForNextToil();
                }
            };
            doWork.FailOnCannotTouch(TargetIndex.B, this.PathEndMode);
            doWork.PlaySoundAtStart(SoundDefOf.Roof_Start);
            doWork.PlaySoundAtEnd(SoundDefOf.Roof_Finish);
            doWork.WithEffect(EffecterDefOf.RoofWork, TargetIndex.A);
            doWork.FailOn(new Func <bool>(this.DoWorkFailOn));
            doWork.WithProgressBar(TargetIndex.A, () => 1f - this.workLeft / 65f, false, -0.5f);
            doWork.defaultCompleteMode = ToilCompleteMode.Never;
            yield return(doWork);

            yield break;
        }
        protected override IEnumerable <Toil> MakeNewToils()
        {
            this.FailOnDespawnedOrNull(TargetIndex.B);
            yield return(Toils_Goto.Goto(TargetIndex.B, PathEndMode));

            Toil doWork = new Toil();

            doWork.initAction = delegate
            {
                workLeft = 65f;
            };
            doWork.tickAction = delegate
            {
                float num = doWork.actor.GetStatValue(StatDefOf.ConstructionSpeed) * 1.7f;
                workLeft -= num;
                if (workLeft <= 0f)
                {
                    DoEffect();
                    ReadyForNextToil();
                }
            };
            doWork.FailOnCannotTouch(TargetIndex.B, PathEndMode);
            doWork.PlaySoundAtStart(SoundDefOf.Roof_Start);
            doWork.PlaySoundAtEnd(SoundDefOf.Roof_Finish);
            doWork.WithEffect(EffecterDefOf.RoofWork, TargetIndex.A);
            doWork.FailOn(DoWorkFailOn);
            doWork.WithProgressBar(TargetIndex.A, () => 1f - workLeft / 65f);
            doWork.defaultCompleteMode = ToilCompleteMode.Never;
            doWork.activeSkill         = () => SkillDefOf.Construction;
            yield return(doWork);
        }