Example #1
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyUp(KeyCode.Space) && sc.Ready())
        {
            lc.NextTurn();
        }

        if (dragging && Input.GetKeyUp(KeyCode.Q))
        {
            dragged.transform.Rotate(Vector3.forward, 60f);
            selected.transform.Rotate(Vector3.forward, 60f);
        }

        if (dragging && Input.GetKeyUp(KeyCode.E))
        {
            dragged.transform.Rotate(Vector3.forward, -60f);
            selected.transform.Rotate(Vector3.forward, -60f);
        }


        if (Input.GetMouseButtonDown(0))
        {
            lastPos = mousePos;
        }

        mousePos = Camera.main.ScreenToWorldPoint(new Vector2(Input.mousePosition.x, Input.mousePosition.y));

//		Debug.Log ("last: " + lastPos + "cur: " + mousePos);

        if (Input.GetMouseButtonUp(0) && lastPos == mousePos && dragging)
        {
//			Debug.Log (5);
            if (LayerMask.NameToLayer("Map") == -1)
            {
//				Debug.Log ("problem");
            }
            hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero, Mathf.Infinity, LayerMask.GetMask("Map"));
            if (hit.collider != null && mc.CheckMapTile(hit.collider.gameObject.GetComponent <TileManager> ()))
            {
//				Debug.Log (6);
                sc.PlaceShape(selected.GetComponent <ShapeManager> ());
                selected.transform.position = hit.collider.transform.position;
                GameObject.Destroy(dragged);
                dragging = false;
                return;
            }
            else if (hit.collider != null)
            {
//				Debug.Log (hit.collider.gameObject);
            }
        }

        if (Input.GetMouseButtonUp(0) && lastPos == mousePos && !dragging)
        {
//			Debug.Log (1);

            hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);

            if (hit.collider != null)
            {
                ShapeManager sm = hit.collider.gameObject.GetComponentInParent <Transform> ().GetComponentInParent <ShapeManager> ();
                if (sc.Enqueued(sm))
                {
//					Debug.Log (2);
                    dragging = true;
                    selected = sm.gameObject;
                    dragged  = GameObject.Instantiate(SelectPrefab.PreviewHex(GetColorFromShapeID(sm.GetShape().ID)), new Vector3(), Quaternion.identity) as GameObject;
//					Debug.Log (selected);
                }
            }
        }

        if (dragging)
        {
//			Debug.Log (3);
            hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
            if (hit.collider != null)
            {
                TileManager tm = hit.collider.gameObject.GetComponent <TileManager> ();
                if (mc.CheckMapTile(tm))
                {
//					Debug.Log (4);
                    if (Mathf.Abs(tm.MT.R) < Constants.mapRadius - 1 && Mathf.Abs(tm.MT.B) < Constants.mapRadius - 1 && Mathf.Abs(tm.MT.G) < Constants.mapRadius - 1)
                    {
                        dragged.transform.position = hit.collider.transform.position;
                    }

//					if (Input.GetMouseButtonUp (0) && lastPos == mousePos){
//						Debug.Log (5);
//						sc.PlaceShape (gameObject.GetComponent<ShapeManager> ());
//						dragging = false;
//					}
//					else{
//						if(Input.GetMouseButtonUp (0)){
//							Debug.Log ((lastPos == mousePos) + " " + lastPos + " " + mousePos);
//						}
//					}
                }
            }
        }
    }