using System; using UnityEngine; // Token: 0x020000F7 RID: 247 public class FlockScare : MonoBehaviour { // Token: 0x0600158D RID: 5517 RVA: 0x0019A6A0 File Offset: 0x001988A0 private void CheckProximityToLandingSpots() { this.IterateLandingSpots(); if (this.currentController._activeLandingSpots > 0 && this.CheckDistanceToLandingSpot(this.landingSpotControllers[this.lsc])) { this.landingSpotControllers[this.lsc].ScareAll(); } base.Invoke("CheckProximityToLandingSpots", this.scareInterval); } // Token: 0x0600158E RID: 5518 RVA: 0x0019A6FC File Offset: 0x001988FC private void IterateLandingSpots() { this.ls += this.checkEveryNthLandingSpot; this.currentController = this.landingSpotControllers[this.lsc]; int childCount = this.currentController.transform.childCount; if (this.ls > childCount - 1) { this.ls -= childCount; if (this.lsc < this.landingSpotControllers.Length - 1) { this.lsc++; return; } this.lsc = 0; } } // Token: 0x0600158F RID: 5519 RVA: 0x0019A784 File Offset: 0x00198984 private bool CheckDistanceToLandingSpot(LandingSpotController lc) { Transform child = lc.transform.GetChild(this.ls); LandingSpot component = child.GetComponent(); if (component._landingChild != null && (child.position - base.transform.position).sqrMagnitude < this.distanceToScare * this.distanceToScare) { if (this.scareAll) { return true; } component.ReleaseFlockChild(); } return false; } // Token: 0x06001590 RID: 5520 RVA: 0x0019A7F8 File Offset: 0x001989F8 private void Invoker() { for (int i = 0; i < this.InvokeAmounts; i++) { float num = this.scareInterval / (float)this.InvokeAmounts * (float)i; base.Invoke("CheckProximityToLandingSpots", this.scareInterval + num); } } // Token: 0x06001591 RID: 5521 RVA: 0x0019A83B File Offset: 0x00198A3B private void OnEnable() { base.CancelInvoke("CheckProximityToLandingSpots"); if (this.landingSpotControllers.Length != 0) { this.Invoker(); } } // Token: 0x06001592 RID: 5522 RVA: 0x0019A857 File Offset: 0x00198A57 private void OnDisable() { base.CancelInvoke("CheckProximityToLandingSpots"); } // Token: 0x040025A3 RID: 9635 public LandingSpotController[] landingSpotControllers; // Token: 0x040025A4 RID: 9636 public float scareInterval = 0.1f; // Token: 0x040025A5 RID: 9637 public float distanceToScare = 2f; // Token: 0x040025A6 RID: 9638 public int checkEveryNthLandingSpot = 1; // Token: 0x040025A7 RID: 9639 public int InvokeAmounts = 1; // Token: 0x040025A8 RID: 9640 private int lsc; // Token: 0x040025A9 RID: 9641 private int ls; // Token: 0x040025AA RID: 9642 private LandingSpotController currentController; // Token: 0x040025AB RID: 9643 public bool scareAll = true; }