public static void ChangePsylinkLevel(this Pawn pawn, int levelOffset) { Hediff_Psylink mainPsylinkSource = pawn.GetMainPsylinkSource(); if (mainPsylinkSource == null) { mainPsylinkSource = (Hediff_Psylink)pawn.health.AddHediff(HediffDefOf.PsychicAmplifier, pawn.health.hediffSet.GetBrain()); } else { mainPsylinkSource.ChangeLevel(levelOffset); } }
public static void ChangePsylinkLevel(this Pawn pawn, int levelOffset, bool sendLetter = true) { Hediff_Psylink mainPsylinkSource = pawn.GetMainPsylinkSource(); if (mainPsylinkSource == null) { mainPsylinkSource = (Hediff_Psylink)HediffMaker.MakeHediff(HediffDefOf.PsychicAmplifier, pawn); try { mainPsylinkSource.suppressPostAddLetter = !sendLetter; pawn.health.AddHediff(mainPsylinkSource, pawn.health.hediffSet.GetBrain()); } finally { mainPsylinkSource.suppressPostAddLetter = false; } } else { mainPsylinkSource.ChangeLevel(levelOffset, sendLetter); } }