private void CheckDistance(BaseEntity entity) { if (entity == null) { return; } var currentPos = entity.transform.position; if (Destination != null) { AI.SetTargetDestination(Destination + new Vector3(0.0f, config.HelicopterSettings.DestinationHeightAdjust, 0.0f)); if (Vector3Ex.Distance2D(currentPos, Destination) < 60) { if (config.HelicopterSettings.UseRockets) { int num = UnityEngine.Random.Range(1, 3); if (num == 2) { AI.State_Strafe_Think(0); } } else { AI.State_Orbit_Think(40f); } } else { AI.State_Move_Enter(Destination + new Vector3(0.0f, config.HelicopterSettings.DestinationHeightAdjust, 0.0f)); } } chopperSurvival.timer.Once(config.HelicopterSettings.CheckDistanceTimer, () => CheckDistance(entity)); }
private void CheckDistance() { if (isDieing) { return; } var currentPos = base.transform.position; if (currentPos.y < TerrainMeta.HeightMap.GetHeight(currentPos)) { KillHelicopter(false); return; } if (targetPos != null) { ai.SetTargetDestination(targetPos + new Vector3(0.0f, instance.configData.HelicopterSettings.DestinationHeightAdjust, 0.0f)); if (Vector3Ex.Distance2D(currentPos, targetPos) < 60) { if (instance.configData.HelicopterSettings.UseRockets) { if (UnityEngine.Random.Range(1, 3) == 2) { ai.State_Strafe_Think(0); } } else { ai.State_Orbit_Think(40f); } } else { ai.State_Move_Enter(targetPos + new Vector3(0.0f, instance.configData.HelicopterSettings.DestinationHeightAdjust, 0.0f)); } } Invoke("CheckDistance", instance.configData.HelicopterSettings.CheckDistanceTimer); }