Example #1
0
            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);
            }