public void NewCultistCheck() { if (CurrentSeedState < CultSeedState.FinishedWriting) { return; } if (ticksToCheckCultists == 0) { ticksToCheckCultists = Find.TickManager.TicksGame + 500; } if (ticksToCheckCultists < Find.TickManager.TicksGame) { ticksToCheckCultists = Find.TickManager.TicksGame + 500; IEnumerable <Pawn> spawnedColonyMembers = map.mapPawns.FreeColonistsAndPrisonersSpawned; Cult playerCult = CultTracker.Get.PlayerCult; if (spawnedColonyMembers != null) { if (spawnedColonyMembers.Count <Pawn>() > 0) { foreach (Pawn colonist in map.mapPawns.FreeColonistsAndPrisonersSpawned) { Need_CultMindedness cultMind = colonist.needs.TryGetNeed <Need_CultMindedness>(); if (cultMind != null) { if (cultMind.CurLevelPercentage > 0.7) { if (playerCult == null) { playerCult = new Cult(colonist); } playerCult.SetMember(colonist); } else if (cultMind.CurInstantLevelPercentage > 0.3 && cultMind.CurInstantLevelPercentage < 0.7) { if (playerCult != null) { playerCult.RemoveMember(colonist); CultTracker.Get.RemoveInquisitor(colonist); } } else if (cultMind.CurInstantLevelPercentage < 0.3) { CultTracker.Get.SetInquisitor(colonist); } } if (colonist.Dead) { playerCult.RemoveMember(colonist); //Log.Messag("9b"); CultTracker.Get.RemoveInquisitor(colonist); continue; } //Log.Messag("10"); } } } } }
public override bool StateCanOccur(Pawn pawn) { if (!base.StateCanOccur(pawn)) { return(false); } if (!pawn.Spawned) { return(false); } Need_CultMindedness cultMind = pawn.needs.TryGetNeed <Need_CultMindedness>(); if (cultMind != null) { if (cultMind.CurLevel > 0.8) { return(true); } } return(false); }