/* Use this for initialization
         * void Start()
         * {
         *
         * }*/

        // Update is called once per frame
        void Update()
        {
            if (Physics.Raycast(mainCamera.ScreenToWorldPoint(Input.mousePosition), mainCamera.transform.forward, out hit) && hit.collider.GetComponent <Hexagon>() && hit.collider.GetComponent <Hexagon>().Visible)
            {
                mouseHex = hit.collider.GetComponent <Hexagon>();

                if (Input.GetMouseButtonDown(0) && mouseBuildingPrefab && !mouseHex.building)
                {
                    mouseHex.Build(mouseBuildingPrefab);
                }

                if (Input.GetMouseButtonDown(1) && !mouseBuildingPrefab)
                {
                    mouseHex.Empty();
                }
                if (mouseHex.building)
                {
                    mouseBuildingSprite.color = Color.red;
                }
                else
                {
                    mouseBuildingSprite.color = Color.white;
                }
                mouseBuildingSprite.enabled                 = true;
                mouseBuildingSprite.transform.parent        = mouseHex.transform;
                mouseBuildingSprite.transform.localPosition = Vector3.zero;
            }
            else
            {
                mouseHex = null;
            }

            mouseBuildingSprite.sprite = mouseBuildingPrefab ? mouseBuildingPrefab.GetComponent <SpriteRenderer>().sprite : null;
        }
Exemple #2
0
        /* Use this for initialization
         * void Start()
         * {
         *
         * }*/

        // Update is called once per frame
        void Update()
        {
            bool hasHit = Physics.Raycast(mainCamera.ScreenToWorldPoint(Input.mousePosition), mainCamera.transform.forward, out hit);

            if (player.onMortarMark)
            {
                if (Input.GetMouseButtonDown(0))
                {
                    Vector3 position = mainCamera.ScreenToWorldPoint(Input.mousePosition);
                    position.z = 0;
                    GameObject.Instantiate(player.mortarMarkPrefab, position, Quaternion.identity);
                }
                if (Input.GetMouseButtonDown(1) && hasHit && hit.collider.GetComponent <MortarMark>())
                {
                    GameObject.Destroy(hit.collider.gameObject);
                }
            }

            if (hasHit && hit.collider.GetComponent <Hexagon>() && hit.collider.GetComponent <Hexagon>().Visible)
            {
                mouseHex = hit.collider.GetComponent <Hexagon>();
                if (player.onTower)
                {
                    if (TowerRightAngle(player.onTower.transform.position, mouseHex.transform.position))
                    {
                        mouseBuildingSprite.transform.parent        = mouseHex.transform;
                        mouseBuildingSprite.transform.localPosition = Vector3.zero;
                    }
                    LocateWalls(player.onTower.transform, mouseHex.transform);
                    if (Input.GetMouseButtonDown(1))
                    {
                        player.onTower = null;
                    }
                }
                else
                {
                    mouseBuildingSprite.transform.parent        = mouseHex.transform;
                    mouseBuildingSprite.transform.localPosition = Vector3.zero;
                }

                if (Input.GetMouseButtonDown(0) && mouseBuildingPrefab && !player.onMortarMark)
                {
                    if (player.onTower)
                    {
                        if (TowerRightAngle(player.onTower.transform.position, mouseHex.transform.position))
                        {
                            Building secondTower = null;
                            if (mouseHex.building && mouseHex.building.kind == "tower")
                            {
                                secondTower = mouseHex.building;
                            }
                            else if (!mouseHex.building)
                            {
                                secondTower = Build(mouseHex, player.towerPrefab, true);
                            }
                            if (secondTower)
                            {
                                BuildWalls(player.onTower.transform, secondTower.transform);
                                player.onTower = null;
                            }
                        }
                    }
                    else if (mouseHex.building && mouseHex.building.kind == "tower")
                    {
                        player.onTower = mouseHex.building;
                    }
                    else if (!mouseHex.building)
                    {
                        Build(mouseHex, mouseBuildingPrefab);
                    }
                }

                if (Input.GetMouseButtonDown(1) && !mouseBuildingPrefab && !player.onMortarMark)
                {
                    mouseHex.Empty();
                }
                if (mouseHex.building)
                {
                    mouseBuildingSprite.color = Color.red;
                }
                else
                {
                    mouseBuildingSprite.color = Color.white;
                }
            }
            else
            {
                mouseHex = null;
            }

            mouseBuildingSprite.sprite = (mouseBuildingPrefab && !player.onMortarMark) ? mouseBuildingPrefab.GetComponent <SpriteRenderer>().sprite : null;

            towerLines.enabled = player.onTower;
        }