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);
                            }
                        }
                    }
                }
            }
        }
Example #2
0
        private static bool on_JobDriver_Meditate(JobDriver_Meditate __instance)
        {
            Pawn pawn = __instance.pawn;

            if (xxx.is_nympho(pawn))
            {
                return(false);
            }

            return(true);
        }