示例#1
0
        protected override IEnumerable <Toil> MakeNewToils()
        {
            CompMeeseeksMemory compMeeseeksMemory = pawn.GetComp <CompMeeseeksMemory>();

            if (compMeeseeksMemory == null)
            {
                yield return(Toils_General.Do(delegate { }));
            }
            else
            {
                yield return(Toils_General.Do(delegate
                {
                    MeeseeksUtility.PlayFinishTaskSound(pawn, compMeeseeksMemory.Voice);
                }));

                int waitTime = Rand.RangeInclusive(60, 180);

                Toil            wait       = Toils_General.Wait(waitTime, 0);
                LocalTargetInfo faceCamera = new LocalTargetInfo(pawn.Position + IntVec3.South);
                pawn.rotationTracker.FaceTarget(faceCamera);
                yield return(wait);

                yield return(Toils_General.Do(delegate
                {
                    Logger.MessageFormat(this, "Meeseeks task completed. Vanishing.");
                    MeeseeksUtility.DespawnMeeseeks(pawn);
                }));
            }
        }
        public override void PostDestroy(DestroyMode mode, Map previousMap)
        {
            base.PostDestroy(mode, previousMap);

            if (Meeseeks.Dead && !destroyed)
            {
                destroyed = true;
                Logger.MessageFormat(this, "Meeseeks dead. Vanishing.");
                MeeseeksUtility.DespawnMeeseeks(Meeseeks);
            }
        }
        public override void CompTick()
        {
            base.CompTick();

            if (Meeseeks.Downed && !destroyed)
            {
                destroyed = true;
                Logger.MessageFormat(this, "Meeseeks downed. Vanishing.");
                MeeseeksUtility.DespawnMeeseeks(Meeseeks);
            }
        }