public static void MeditationTick_PostFix(JobDriver_Meditate __instance) { var pawn = Traverse.Create(__instance).Field("pawn").GetValue <Pawn>(); if (ModsConfig.RoyaltyActive && DefDatabase <MeditationFocusDef> .GetNamed("Morbid").CanPawnUse(pawn)) { int num = GenRadial.NumCellsInRadius(MeditationUtility.FocusObjectSearchRadius); for (int i = 0; i < num; i++) { IntVec3 c = pawn.Position + GenRadial.RadialPattern[i]; if (c.InBounds(pawn.Map)) { Plant plant = c.GetPlant(pawn.Map); if (plant != null && plant.def == ThingDef.Named("Cults_PlantTreeNightmare")) { CompSpawnSubplant compSpawnSubplant = plant.TryGetComp <CompSpawnSubplant>(); if (compSpawnSubplant != null) { compSpawnSubplant.AddProgress(JobDriver_Meditate.AnimaTreeSubplantProgressPerTick, false); } } } } } }
private static bool on_JobDriver_Meditate(JobDriver_Meditate __instance) { Pawn pawn = __instance.pawn; if (xxx.is_nympho(pawn)) { return(false); } return(true); }