Пример #1
0
    public void openTowerPanel(string mode, TowerPlaceholder tp)
    {
        gameObject.SetActive(true);

        if (mode == "Build")
        {
            buildLayout.SetActive(true);
            foreach (Button button in buttons)
            {
                button.onClick.RemoveAllListeners();
            }
            buttons[0].onClick.AddListener(delegate(){ tp.CreateTower(TowerType.Assault); closeTowerPanel(); });
            buttons[1].onClick.AddListener(delegate(){ tp.CreateTower(TowerType.Barracks); closeTowerPanel(); });
            buttons[2].onClick.AddListener(delegate(){ tp.CreateTower(TowerType.Buffer); closeTowerPanel(); });
            buttons[3].onClick.AddListener(delegate(){ tp.CreateTower(TowerType.Arcane); closeTowerPanel(); });
        }
        else if (mode == "Upgrade")
        {
            upgradeLayout.SetActive(true);
        }
        else
        {
            Debug.Log("Wrong mode");
        }
    }
Пример #2
0
    public void TryBuyNewTower(Evolution evolution)
    {
        if (!statusValue.Status.Equals(ShopStatus.None))
        {
            return;
        }

        if (inventory.CurrentGold >= evolution.cost)
        {
            inventory.ReduceGold(evolution.cost);
            GameObject       towerObject = Instantiate(towerPlaceholderPrefab, Vector3.zero, Quaternion.identity);
            TowerPlaceholder placeholder = towerObject.GetComponent <TowerPlaceholder>();
            placeholder.Init(evolution.tower);
            statusValue.SetStatus(ShopStatus.Buying);
        }
    }
Пример #3
0
    void Update()
    {
        if (es.IsPointerOverGameObject())
        {
            //Pointer over UI
            //print("da");
            return; // exit out of OnMouseDown() because its over the uGUI
        }
        else
        {
            if (Input.GetMouseButtonDown(0))
            {
                if (ClickNotOnCanvas != null && ClickNotOnCanvas.GetInvocationList().Length > 0)
                {
                    ClickNotOnCanvas.Invoke();
                }
                Ray        ray = GameManager.instance.cam.ScreenPointToRay(Input.mousePosition);
                RaycastHit hit;

                if (Physics.Raycast(ray, out hit))
                {
                    switch (hit.transform.tag)
                    {
                    case "Unit":
                        hit.transform.GetComponent <UnitController>().OnFocused();
                        if (previousSelected != null)
                        {
                            previousSelected.GetComponent <UnitController>().OnUnfocused();
                        }
                        previousSelected = hit.transform.gameObject;

                        break;

                    case "TowerPlace":
                        TowerPlaceholder tp = hit.collider.gameObject.GetComponent <TowerPlaceholder>();
                        if (tp.HasUpgrade)
                        {
                            //sidePanel.openTowerPanel("Build", tp);
                            tp.UpgradeTower(0);
                        }

                        break;

                    case "Fabrique":
                        inspector.openInspector(hit.collider.gameObject);
                        break;

                    case "Spawner":
                        Spawner spw = hit.transform.GetComponent <Spawner>();
                        if (spw.HasNextWave())
                        {
                            spw.NextWave();
                        }
                        break;

                    default:
                        print(hit.transform.gameObject.name);
                        break;
                    }
                }
            }
        }
    }