IEnumerator BeginTheRapture(float time)
    {
        inPosition = true;
        ToggleBeam(true);

        scr_moveRednecks script = targetedRedneck.transform.GetComponent <scr_moveRednecks>();

        script.BeginTheRapture();

        yield return(new WaitForSeconds(time));

        Debug.Log("Name: " + targetedRedneck.name);

        redneckList.Remove(targetedRedneck);
        transform.GetComponent <Rigidbody2D>().velocity = Vector3.zero;

        targetedRedneck = null;
        Destroy(targetedRedneck);

        scr_godController.gameController.AdjustRedneckCounts(-1);

        ToggleBeam(false);

        runChecks   = true;
        isRapturing = false;

        targetedRedneck = null;
        inPosition      = false;
    }
    void Update()
    {
        if (startShip == true)
        {
            if (didSetupShip == false)
            {
                redneckList = new List <GameObject> ();

                GameObject[] redneckArray = GameObject.FindGameObjectsWithTag("spr_redneck");

                foreach (GameObject redneck in redneckArray)
                {
                    redneckList.Add(redneck);
                }

                didSetupShip = true;
            }

            if ((runChecks == true) && (isRapturing == false))
            {
                if ((redneckList != null) && (redneckList.Count > 0))
                {
                    targetedRedneck = null;
                    foreach (GameObject redneck in redneckList)
                    {
                        redneckDistance = Vector2.Distance(transform.transform.position, redneck.transform.position);

                        if (targetedRedneck == null)
                        {
                            targetedRedneck         = redneck;
                            targetedRedneckDistance = redneckDistance;
                        }
                        else if (redneckDistance < targetedRedneckDistance)
                        {
                            targetedRedneck         = redneck;
                            targetedRedneckDistance = redneckDistance;
                        }
                        else
                        {
                            //						Debug.Log("Staying on target");
                        }
                    }

                    transform.GetComponent <Rigidbody2D>().velocity = Vector3.zero;
                    targetPosition     = new Vector3(targetedRedneck.transform.position.x, (targetedRedneck.transform.position.y - (targetedRedneck.transform.localScale.y * 0.5f)), transform.position.z);
                    transform.position = Vector3.MoveTowards(transform.position, targetPosition, speedControl);
                    //				targetedRedneckDistance = 10000.0f;
                }
            }

            if (targetedRedneck != null)
            {
                if (isRapturing == false)
                {
                    transform.position = Vector3.MoveTowards(transform.position, targetPosition, speedControl);

                    if ((transform.position == targetPosition) && (inPosition == false) && (isRapturing == false))
                    {
                        scr_moveRednecks script = targetedRedneck.transform.GetComponent <scr_moveRednecks>();
                        script.ClearPath();

                        isRapturing = true;

                        StartCoroutine(BeginTheRapture(1.0f));
                    }
                }
            }
        }
    }