// Use this for initialization
    void Start()
    {
        lastSpawn    = 0;
        lastAnchor   = 0;
        c_object     = this.transform.FindChild("c_Structure").gameObject;
        c_light      = this.transform.FindChild("c_Light").gameObject;
        activeTroops = new List <GameObject>();
        //ArrowScript arrowS = (ArrowScript)c_arrow.GetComponent (typeof(ArrowScript));

        ActiveTarget = this.gameObject;
        for (int i = 0; i < connectedPoints.Count; ++i)
        {
            if (connectedPoints[i] != null)
            {
                GameObject newArrow = GameObject.Instantiate(ArrowPreFab, new Vector3(0, 0, 0), Quaternion.identity) as GameObject;
                newArrow.transform.parent        = this.gameObject.transform;
                newArrow.transform.localPosition = new Vector3(0, 0, 0);
                ArrowScript arrowS = (ArrowScript)newArrow.GetComponent(typeof(ArrowScript));
                arrowS = (ArrowScript)newArrow.GetComponent(typeof(ArrowScript));
                arrowS.initilize(connectedPoints[i], this.transform.position);
                arrows.Add(newArrow);
                newArrow.SetActive(false);
            }
        }
        //c_light.light.color = Color.white;
        BaseLightIntensity     = c_light.light.intensity;
        SelectedLightIntensity = BaseLightIntensity + 3f;
        _isSelected            = false;

        // state chosen manually in inspector
        switch (controlPointState)
        {
        case ownerControl.Friendly:
            controlCounter = 1f;
            break;

        case ownerControl.Enemy:
            controlCounter = -1f;
            break;

        default:
            controlCounter = 0f;
            break;
        }

        buildConnections();

        prevControlState = controlPointState;
    }
    private void UpdateControlState(float t)
    {
        GameObject[] mobs = GameObject.FindGameObjectsWithTag("Mob");
        float        distance;

        foreach (GameObject m in mobs)
        {
            if (m.GetComponent <MobController>() != null)
            {
                distance = (m.transform.position - gameObject.transform.position).magnitude;
                if (distance < controlDistance)
                {
                    float force = (controlDistance - distance) / controlDistance;
                    controlCounter += force * captureSpeed * t * (m.GetComponent <MobController>().friendly ? 1f : -1f);
                }
            }
        }
        controlCounter = Mathf.Clamp(controlCounter, -1f, 1f);
        if (controlCounter >= 1f)
        {
            controlPointState = ownerControl.Friendly;
        }
        else if (controlCounter <= -1f)
        {
            controlPointState = ownerControl.Enemy;
        }
        else if (controlCounter == 0f)
        {
            controlPointState = ownerControl.Neutral;
        }
        else
        {
            controlPointState = ownerControl.InConflict;
        }

        if ((controlPointState == ownerControl.Friendly || controlPointState == ownerControl.Enemy) && controlPointState != prevControlState)
        {
            prevControlState = controlPointState;
            GameObject fireworks = (GameObject)Instantiate(fireworksPrefab, transform.position + transform.up * 10f, Quaternion.identity);
        }
    }