コード例 #1
0
        protected override IEnumerable <Toil> MakeNewToils()
        {
            HarpyComp comp = this.pawn.TryGetComp <HarpyComp>();
            bool      flag = comp != null;

            if (flag)
            {
                bool flag2 = this.pawn.Position.Roofed(this.pawn.Map);
                if (flag2)
                {
                    yield return(Toils_Harpy.GoToNearUnroofedCell(TargetIndex.A, comp.AdjustedRange));
                }
                yield return(Toils_Harpy.CastFlyAbility(TargetIndex.A));
            }
            yield break;
        }
コード例 #2
0
ファイル: Toils_Harpy.cs プロジェクト: RoyBoy189/flight
        public static Toil CastFlyAbility(TargetIndex ind)
        {
            Toil toil = new Toil();

            toil.initAction = delegate()
            {
                Pawn      actor     = toil.actor;
                HarpyComp harpyComp = actor.TryGetComp <HarpyComp>();
                bool      flag      = harpyComp != null;
                if (flag)
                {
                    harpyComp.FlyAbility(actor, actor.jobs.curJob.GetTarget(ind).Cell);
                }
                else
                {
                    actor.jobs.EndCurrentJob(JobCondition.Incompletable, true, true);
                }
            };
            toil.defaultCompleteMode = ToilCompleteMode.PatherArrival;
            return(toil);
        }