Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
 public void SetDestination(Vector3 destination)
 {
     Destination = destination;
     AI.State_Move_Enter(Destination + new Vector3(0.0f, config.HelicopterSettings.DestinationHeightAdjust, 0.0f));
 }