// Token: 0x0600000A RID: 10 RVA: 0x000023A8 File Offset: 0x000005A8 public static void JobFailIfHid(Pawn seer, Pawn target, Job cur) { if (seer != null && target != null && cur != null && cur.def != CamoAIUtility.CamoPauseJobDef() && seer.Spawned && target.Spawned && (seer?.Map) != null && (target?.Map) != null && seer.Map == target.Map) { bool flag; if (seer == null) { flag = (null != null); } else { Pawn_MindState mindState = seer.mindState; flag = ((mindState?.meleeThreat) != null); } if (!flag) { if (CamoAIUtility.CanSeeSimply(seer, target)) { if (CamoUtility.IsTargetHidden(target, seer)) { CamoAIUtility.CorrectLordForCamo(seer, target); return; } } else { CamoAIUtility.CorrectLordForCamo(seer, target); } } } }
// Token: 0x0600000C RID: 12 RVA: 0x00002524 File Offset: 0x00000724 public static void CorrectJob(Pawn seer, Pawn target) { if (seer != null && target != null && (seer?.Map) != null && (target?.Map) != null && seer.Map == target.Map) { bool flag; if (seer == null) { flag = (null != null); } else { Pawn_MindState mindState = seer.mindState; flag = ((mindState?.meleeThreat) != null); } if (!flag && ThingCompUtility.TryGetComp <PawnCamoData>(seer).LastCamoCorrectTick + 120 <= Find.TickManager.TicksGame && seer.Spawned && target.Spawned) { bool flag2; if (seer == null) { flag2 = (null != null); } else { Pawn_JobTracker jobs = seer.jobs; flag2 = ((jobs?.curJob) != null); } if (flag2 && seer.jobs.curJob.def != CamoAIUtility.CamoPauseJobDef() && seer.jobs.curJob.AnyTargetIs(target)) { ThingCompUtility.TryGetComp <PawnCamoData>(seer).LastCamoCorrectTick = Find.TickManager.TicksGame; CamoAIUtility.RemoveTarget(seer, target); } } } }
// Token: 0x06000006 RID: 6 RVA: 0x000021CC File Offset: 0x000003CC private static void GiveWaitJob(Pawn pawn, int period) { ThingCompUtility.TryGetComp <PawnCamoData>(pawn).LastCamoCorrectTick = Find.TickManager.TicksGame; Job job = new Job(CamoAIUtility.CamoPauseJobDef()) { expiryInterval = period, checkOverrideOnExpire = true }; pawn.jobs.jobQueue.EnqueueFirst(job, null); }