Example #1
0
	// Update is called once per frame
	void Update () {
		crowSelected = GameObject.Find ("Crow 1").GetComponent<CrowBehaviour>();
		if (Input.GetMouseButtonDown (0)) {
			CastSelectRay ();
		}

		if (crowSelected != null && crowSelected.shaman.getCurrentEnergy () != 0) {
			if (Input.GetMouseButtonDown (1) && crowSelected != null) {
				CastMoveRay ();
			}
		}
		mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
		mousePosition.z = 0;
		if (crowSelected != null) {
			radius = (6 - crowSelected.shaman.getCurrentEnergy ());
			if(crowSelected.shaman.getCurrentEnergy() == 0){
				target = crowSelected.getRandomPoint(new Vector2(0, 0), 8);
			} else {
			if (target == new Vector2(0, 0)) {
				float angle = Random.Range (0.001f, 1.000f) * Mathf.PI * 2;
				x = Mathf.Cos (angle) * radius;
				y = Mathf.Sin (angle) * radius;
				target = new Vector3 (mousePosition.x + x, mousePosition.y + y, 0);
			} else {
				target = new Vector3 (mousePosition.x + x, mousePosition.y + y, 0);
				transform.position = Vector3.Lerp (transform.position, target, Time.deltaTime * 7f);
				if(isCloseToTarget((Vector2)transform.position, target)) {
					target = new Vector2(0, 0);
				}
			}
			}
		} else {
			transform.position = mousePosition;
		}
	}
Example #2
0
	void deselectCrow(){
		if(crowSelected != null){
			crowSelected.crowAnimation.speed = 1;
			crowSelected.setSelected(false);
			crowSelected = null;
		}
	}
Example #3
0
	void CastSelectRay() {
		Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
		RaycastHit2D hit = Physics2D.Raycast (ray.origin, ray.direction, Mathf.Infinity);
		if (hit.collider != null && hit.collider.gameObject.tag == "Crow") {
			deselectCrow();
			crowSelected = hit.collider.gameObject.GetComponent<CrowBehaviour>();
			crowSelected.crowAnimation.speed = 0;
			crowSelected.setSelected(true);
		} else {
			deselectCrow();
		}
	}