private IEnumerator actualUse(LowLevelAI_SCR lowBrain)
    {
        beingUsed = true;

        // Try to get in line of sight
        bool looking      = true;
        int  lookingCount = 0;

        while (looking)
        {
            yield return(new WaitForSeconds(0));

            lookingCount++;

            if (!lowBrain.moving && !shooting)
            {
                // Pick a random place to move to
                Vector3 target = new Vector3(this.transform.parent.position.x + Random.Range(-20, 20), this.transform.parent.position.y + Random.Range(-20, 20), 0);
                lowBrain.MoveTo(target);
            }

            // If can see player then shoot the laser
            Vector3      dir = player.transform.position - this.transform.position;
            Ray2D        ray = new Ray2D(this.transform.position, dir * 5);
            RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction, 1000);

            if (hit.collider.name == "Player" && !shooting)
            {
                looking = false;
                StartCoroutine(ShootLaser());
                lowBrain.StopMoving();
            }

            // If cycled too many times kick out and do something else
            if (lookingCount > Random.Range(5, 20))
            {
                Debug.Log("Using something else");
                looking = false;
            }
        }

        if (!shooting)
        {
            beingUsed = false;
        }

        this.transform.parent.GetComponent <HighLevelAI_SCR>().makeDecision = true;
    }
    private IEnumerator actualUse(LowLevelAI_SCR bossBrain)
    {
        beingUsed = true;

        bool looking      = true;
        int  lookingCount = 0;

        while (looking)
        {
            lookingCount++;
            // If cycled too many times kick out and do something else
            if (lookingCount > Random.Range(5, 10))
            {
                Debug.Log("Using something else");
                looking = false;
            }

            // Stop moving to update player target pos
            bossBrain.StopMoving();

            // Not close to player, then move towards him
            if (Vector3.Distance(this.transform.position, bossBrain.god.player.transform.position) > 5)
            {
                if (!bossBrain.moving)
                {
                    bossBrain.MoveTo(bossBrain.god.player.transform.position);
                }
                yield return(new WaitForSeconds(1f));
            }
            else
            {
                Instantiate(stunner, this.transform.position, Quaternion.identity);
                yield return(new WaitForSeconds(1));

                looking = false;
            }
        }

        // Make new decision
        beingUsed = false;
        this.transform.parent.GetComponent <HighLevelAI_SCR>().makeDecision = true;
    }