public override void TickRare() { MaybeTalkGibberish(); DrainMoodAfterTickRare(); if (CurMoodCategory == Mood.Mad && !goingRogue) { MaybeGoRogue(); } if (textTimeout > 0) { textTimeout--; } foreach (Building_TurretGun turret in controlledTurrets) { if (turret.DestroyedOrNull()) { CancelControlTurret(turret); } } ExtendedDataStorage store = Base.Instance.GetExtendedDataStorage(); if (store != null) { ExtendedMapData mapData = store.GetExtendedDataFor(this.Map); mapData.rogueAI = this; } }
public override bool ShouldSkip(Pawn pawn, bool forced = false) { ExtendedDataStorage store = Base.Instance.GetExtendedDataStorage(); if (store != null) { ExtendedMapData mapData = store.GetExtendedDataFor(pawn.Map); if (mapData.rogueAI != null && mapData.rogueAI.goingRogue) { return(false); } } return(true); }