public override void TickRare()
{
if ((this.Growth >= minGrowthToPoison)
&& (this.Dying == false)
&& (this.isInCryostasis == false))
{
// Spawn toxic gas.
ThrowPoisonSmoke();
// Poison nearby pawns.
List<Pawn> allPawnsSpawned = Find.MapPawns.AllPawnsSpawned;
for (int pawnIndex = 0; pawnIndex < allPawnsSpawned.Count; pawnIndex++)
{
Pawn pawn = allPawnsSpawned[pawnIndex];
if (pawn.Position.InHorDistOf(this.Position, poisonRadius))
{
float num = 0.01f;
num *= pawn.GetStatValue(StatDefOf.ToxicSensitivity, true);
if (num != 0f)
{
Rand.PushSeed();
Rand.Seed = pawn.thingIDNumber * 74374237;
float num2 = Mathf.Lerp(0.85f, 1.15f, Rand.Value);
Rand.PopSeed();
num *= num2;
HealthUtility.AdjustSeverity(pawn, HediffDefOf.ToxicBuildup, num);
}
}
}
}
if (Find.TickManager.TicksGame >= this.nextLongTick)
{
this.nextLongTick = Find.TickManager.TicksGame + GenTicks.TickLongInterval;
base.TickLong();
}
}