/// <summary>Does the ingestion outcome special.</summary> /// <param name="pawn">The pawn.</param> /// <param name="ingested">The ingested.</param> protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested) { var gComp = Find.World.GetComponent <PawnmorphGameComp>(); var status = gComp.GetPawnStatus(pawn); if (status == TransformedStatus.Transformed) { //revert transformations foreach (MutagenDef mutagenDef in DefDatabase <MutagenDef> .AllDefs) { if (blackList.Contains(mutagenDef)) { return; // Make it so this reverted can not revert certain kinds of transformations. } if (mutagenDef.MutagenCached.TryRevert(pawn)) { return; } } } else { //revert mutations TransformerUtility.SetToRaceDefault(pawn); AspectTracker aT = pawn.GetAspectTracker(); if (aT != null) { RemoveAspects(aT); } GraphicsUpdaterComp graphicsComp = pawn.GetComp <GraphicsUpdaterComp>(); if (graphicsComp != null) { graphicsComp.IsDirty = true; } pawn.RefreshGraphics(); } }