105 lines
2.7 KiB
C#
105 lines
2.7 KiB
C#
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<LandingSpot>();
|
|
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;
|
|
}
|