Пример #1
0
    public void UpgradeButton()
    {
        if (!playerStats)
        {
            NewPlayer();
        }

        if (playerStats == null)
        {
            return;
        }

        if (playerStats.Wood - buildingStats.GetUpgradeWood() >= 0 &&
            playerStats.Stone - buildingStats.GetUpgradeStone() >= 0)
        {
            playerStats.Wood  -= buildingStats.GetUpgradeWood();
            playerStats.Stone -= buildingStats.GetUpgradeStone();
            grabPlayerStats.BuildingBoughtSoldRepairedUpgraded();
            buildingStats.CalculateRepairCosts();
            UpdateRepairCostAndHealth();
            buildingStats.BuildingUpgrade();
        }
    }
Пример #2
0
    void FixedUpdate()
    {
        RaycastHit hit;
        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        ChangePlacementObject(SelectedBuilding);

        if (Physics.Raycast(ray, out hit, Mathf.Infinity))
        {
            CheckForBuilding(hit);

            if (IsBuildingMode)
            {
                BuildMode();

                placementObject.SetActive(true);
                NewPosition = hit.point;

                x = NewPosition.x;
                z = NewPosition.z;

                x = Mathf.Round(x / CellSize) * CellSize;
                y = -0.5f;
                z = Mathf.Round(z / CellSize) * CellSize;

                placementObject.transform.position = new Vector3(x, y, z);

                if (Input.GetMouseButton(0))
                {
                    //Add this in when i add the new UI to unity, this will stop the button pressing effect the ingame world
                    if (EventSystem.current.IsPointerOverGameObject())
                    {
                        return;
                    }

                    if (hit.transform.tag == "Ground")
                    {
                        if (CanBuy())
                        {
                            GameObject newBuilding = Instantiate(SelectedBuilding, new Vector3(x, y, z), Quaternion.identity);
                            newBuilding.transform.parent = transform;

                            grabPlayerStats.BuildingBoughtSoldRepairedUpgraded();

                            if (SelectedBuilding.tag == "Base")
                            {
                                gameControllerScript.SpawnZombieSpawners();
                            }

                            /*if (SelectedBuilding.tag == "Door")
                             *  Physics.IgnoreCollision(SelectedBuilding.GetComponent<Collider>(), GameObject.FindGameObjectWithTag("Player").GetComponent<Collider>());*/
                        }
                    }
                }
            }
            else if (!IsBuildingMode)
            {
                placementObject.SetActive(false);
            }
        }
    }