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"); } }
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); } }
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; } } } } }