// 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); } }