public void State_Strafe_Enter(Vector3 strafePos, bool shouldUseNapalm = false)
    {
        Vector3 vector3;
        Vector3 vector31;

        if (this.CanUseNapalm() & shouldUseNapalm)
        {
            this.useNapalm      = shouldUseNapalm;
            this.lastNapalmTime = UnityEngine.Time.realtimeSinceStartup;
        }
        this.lastStrafeTime = UnityEngine.Time.realtimeSinceStartup;
        this._currentState  = PatrolHelicopterAI.aiState.STRAFE;
        if (!TransformUtil.GetGroundInfo(strafePos, out vector3, out vector31, 100f, LayerMask.GetMask(new string[] { "Terrain", "World", "Construction", "Water" }), base.transform))
        {
            this.strafe_target_position = strafePos;
        }
        else
        {
            this.strafe_target_position = vector3;
        }
        this.numRocketsLeft        = 12;
        this.lastRocketTime        = 0f;
        this.movementLockingAiming = true;
        Vector3 randomOffset = this.GetRandomOffset(strafePos, 175f, 192.5f, 20f, 30f);

        this.SetTargetDestination(randomOffset, 10f, 30f);
        this.SetIdealRotation(this.GetYawRotationTo(randomOffset), -1f);
        this.puttingDistance = true;
    }
    public void State_Patrol_Enter()
    {
        this._currentState = PatrolHelicopterAI.aiState.PATROL;
        Vector3 randomPatrolDestination = this.GetRandomPatrolDestination();

        this.SetTargetDestination(randomPatrolDestination, 10f, 30f);
        this.interestZoneOrigin = randomPatrolDestination;
        this.arrivalTime        = 0f;
    }
    public void State_Move_Enter(Vector3 newPos)
    {
        this._currentState        = PatrolHelicopterAI.aiState.MOVE;
        this.destination_min_dist = 5f;
        this.SetTargetDestination(newPos, 5f, 30f);
        float single = Vector3.Distance(base.transform.position, this.destination);

        this.targetThrottleSpeed = this.GetThrottleForDistance(single);
    }
    public void State_Orbit_Enter(float orbitDistance)
    {
        this._currentState   = PatrolHelicopterAI.aiState.ORBIT;
        this.breakingOrbit   = false;
        this.hasEnteredOrbit = false;
        this.orbitStartTime  = UnityEngine.Time.realtimeSinceStartup;
        Vector3 vector3 = base.transform.position - this.interestZoneOrigin;

        this.currentOrbitTime     = Mathf.Atan2(vector3.x, vector3.z);
        this.currentOrbitDistance = orbitDistance;
        this.ClearAimTarget();
        this.SetTargetDestination(this.GetOrbitPosition(this.currentOrbitTime), 20f, 0f);
    }
    public void State_Death_Enter()
    {
        Vector3 vector3;
        Vector3 vector31;

        this.maxRotationSpeed *= 8f;
        this._currentState     = PatrolHelicopterAI.aiState.DEATH;
        int num = 1236478737;

        TransformUtil.GetGroundInfo(this.GetRandomOffset(base.transform.position, 20f, 60f, 20f, 30f) - (Vector3.up * 2f), out vector3, out vector31, 500f, num, null);
        this.SetTargetDestination(vector3, 5f, 30f);
        this.targetThrottleSpeed = 0.5f;
        this.deathTimeout        = UnityEngine.Time.realtimeSinceStartup + 10f;
    }
 public void State_Idle_Enter()
 {
     this._currentState = PatrolHelicopterAI.aiState.IDLE;
 }
 public void ExitCurrentState()
 {
     this.OnCurrentStateExit();
     this._currentState = PatrolHelicopterAI.aiState.IDLE;
 }