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); } }