public void UpgradeButton() { if (PlayerStats.Money >= 100) { GameObject effect = (GameObject)Instantiate(sellEffect, TowerControl.selected[0].GetBuildPosition(), Quaternion.identity); Destroy(effect, 5f); if (TowerControl.selected[0].turret.name == "StandardTurret") { GameObject ST_UP_CLONE = (GameObject)Instantiate(Upgraded_Standard, TowerControl.selected[0].GetBuildPosition(), Quaternion.identity); ST_UP_CLONE.name = "Improved " + TowerControl.selected[0].turret.name; Destroy(TowerControl.selected[0].turret); TowerControl.selected[0].turret = ST_UP_CLONE; } else if (TowerControl.selected[0].turret.name == "Missile Launcher") { GameObject MS_UP_CLONE = (GameObject)Instantiate(Upgraded_Missile, TowerControl.selected[0].GetBuildPosition(), Quaternion.identity); MS_UP_CLONE.name = "Improved " + TowerControl.selected[0].turret.name; Destroy(TowerControl.selected[0].turret); TowerControl.selected[0].turret = MS_UP_CLONE; } TowerControl.delete_SelectionList(TowerControl.selected, TowerControl.selected_circle); SelectedUnitImage.update_image(null); SelectedUnitStat.update_stat(null); PlayerStats.Money -= 100; } }
public void Shoot(TowerControl targetTower) { var shootingTurret = GetComponent<Turret>(); shootingTurret.targetTransform = targetTower.transform; // Note that it takes time to turn the turret before shooting. Therefore we do not play the shooting sound until the missle was launched. // For that we get an event IHandleMissleLaunched from the Turret script. }
public void Abandon_Message_Yes() { Abandon_Message.SetActive(false); PauseMenuUI.SetActive(false); gameoverUI.SetActive(true); TowerControl.delete_SelectionList(TowerControl.selected, TowerControl.selected_circle); }
private void OnMouseDown() { //prevent clicking overgameObject if (EventSystem.current.IsPointerOverGameObject()) { return; } /* if (!buildManager.CanBuild) * return;*/ if (turret != null || this.tag != "Node") { Debug.Log("Can't build there! - TODO: Display on Screen"); if (turret != null) { // < circle = (GameObject)Instantiate(select_circle, transform.position, transform.rotation); > if (TowerControl.selected.Count != 0) { TowerControl.delete_SelectionList(TowerControl.selected, TowerControl.selected_circle); } TowerControl.add_Node_To_SelectionList(this); // add selected node to list // < TowerControl.selected.Add(this); > TowerControl.DrawCircle(TowerControl.selected, select_circle); //draw circle on selected nodes turretStat = this.turret.GetComponent <Turret>(); TurretRangeCircle.Delete_Range_Circle(); TurretRangeCircle.Draw_Range_Circle(range_circle, this, turretStat.range); //Show the range of turret by drawing purple circle. is_selecting = true; SelectedUnitImage.update_image(this); //Show turret sprite and status for players. SelectedUnitStat.update_stat(this); //GeneralUIButton.PressCancelButton(); TowerControl.selected.TrimExcess(); TowerControl.selected_circle.TrimExcess(); //TrimExcess() for optimizing capacity in condition that has only one selected //model. May need to modify later if the list can hold more data. buildManager.UnselectTurretToBuild(); } //draw circle to notify user select this turret. /* else * Debug.Log(TowerControl.selected.Count);*/ return; } if (turret == null && TowerControl.selected.Count != 0) { TowerControl.delete_SelectionList(TowerControl.selected, TowerControl.selected_circle); //delete existing circle on clicking //empty node TurretRangeCircle.Delete_Range_Circle(); SelectedUnitImage.update_image(this); SelectedUnitStat.update_stat(this); } //Build a turret buildManager.BuildTurretOn(this); }
void OnGUI() { GUI.color = Color.red; for (int i = 0; i < towers.Length; i++) { TowerControl towerControl = towers[i].GetComponent <TowerControl>(); GUI.Label(new Rect(10, 10 + i * 20.0f, 100, 20), towerControl.TowerID.ToString() + " : " + towerControl.tState.ToString()); } }
public void PlaceTower(RaycastHit2D hit) { if (!EventSystem.current.IsPointerOverGameObject() && towerButtonPressed != null) { TowerControl newTower = Instantiate(towerButtonPressed.TowerObject); newTower.transform.position = hit.transform.position; BuyTower(towerButtonPressed.TowerPrice); RegisterTower(newTower); DisableDrag(); } }
void Start() { _spawner = GetComponent <ThrowableSpawner> (); _tower = GetComponentInParent <TowerControl> (); minThrowAngle.Normalize(); maxThrowAngle.Normalize(); // Init held throwable. LoadNextItem(); }
public void PlaceTower(RaycastHit2D hit) { if (!EventSystem.current.IsPointerOverGameObject() && towerButtonPressed != null) { //создаст башню взависимости от выбранной кнопки TowerControl newTower = Instantiate(towerButtonPressed.TowerObject); newTower.transform.position = hit.transform.position; BuyTower(towerButtonPressed.TowerPrice); RegisterTower(newTower); DisactivatePicture(); } }
public void PlaceTower(RaycastHit2D hit) { if (!EventSystem.current.IsPointerOverGameObject() && towerBtnPressed != null) //если мы не навели кнопка башни нажата и ЛКМ уже не на ее иконке { TowerControl newTower = Instantiate(towerBtnPressed.TowerObject); newTower.transform.position = hit.transform.position;//положение новой башни должно совпадать с ЛКМ BuyTower(towerBtnPressed.TowerPrice); RegisterTower(newTower); DisableDrug();//деактивируем картинку башни на курсоре } }
public void PlaceTower(RaycastHit2D hit) //метод указывающий о расположении башни /объект который появится при клике { if (!EventSystem.current.IsPointerOverGameObject() && towerBtnPressed != null) //если мы наведем курсор на кнопку то мы не сможем поставить башню на кнопке { TowerControl newTower = Instantiate(towerBtnPressed.TowerObject); newTower.transform.position = hit.transform.position; //положение башни, где было кликнуто BuyTower(towerBtnPressed.TowerPrice); Manager.Instance.AudioSource.PlayOneShot(SoundManager.Instance.TowerBuilt); RegisterTower(newTower); DisableDrag(); } }
public void PlaceTower(RaycastHit2D hit) { if (!EventSystem.current.IsPointerOverGameObject() && towerBtnPressed != null) { TowerControl newTower = Instantiate(towerBtnPressed.TowerObject); newTower.transform.position = hit.transform.position; BuyTower(towerBtnPressed.TowerPrice); Manager.Instance.AudioSource.PlayOneShot(SoundManager.Instance.TowerBuilt); RegisterTower(newTower); DisableDrag(); } }
public void SellButton() { GameObject effect = (GameObject)Instantiate(sellEffect, TowerControl.selected[0].GetBuildPosition(), Quaternion.identity); Destroy(effect, 5f); Destroy(TowerControl.selected[0].turret); TowerControl.delete_SelectionList(TowerControl.selected, TowerControl.selected_circle); SelectedUnitImage.update_image(null); SelectedUnitStat.update_stat(null); PlayerStats.Money += 50; }
private void PressBuildButton() { A.SetActive(true); B.SetActive(true); C.SetActive(true); sell_button.SetActive(false); upgrade_button.SetActive(false); selected_unit_image.enabled = false; selected_unit_name.enabled = false; selected_unit_stat.enabled = false; TowerControl.delete_SelectionList(TowerControl.selected, TowerControl.selected_circle); TurretRangeCircle.Delete_Range_Circle(); }
public void PlaceTower(RaycastHit2D hit) // Метод, который будет указывать на расположение башни. RaycastHit2D hit будет отправляться луч для проверки. { if (!EventSystem.current.IsPointerOverGameObject() && towerBtnPressed != null) // Условие евента, IsPointerOverGameObject обозначает что мы не сможем поставить башню, если навели на кнопку. // если мы не навели на одну из кнопок , а так же мы нажали на какую-то кнопку. { TowerControl newTower = Instantiate(towerBtnPressed.TowerObject); // Объект новой башни будет спавниться , которая привязанна к определенной кнопке. newTower.transform.position = hit.transform.position; // Расположение новой башни будет такое же , куда мы кликнули BuyTower(towerBtnPressed.TowerPrice); Manager.Instance.AudioSource.PlayOneShot(SoundManager.Instance.TowerBuilt); RegisterTower(newTower); DisableDrag(); } }
public void UpgradeTower() { Debug.Log("Teste UpgradeTower"); if ((!UI_Tutorial.activeSelf || GlobalData.TutCanBuildFree) || GlobalData.current_tutorial == 6) { if (GlobalData.current_tutorial == 6) { GameObject.FindGameObjectWithTag("TD_Level").GetComponent <TDLevelControl>().ActedOnTutorial(); } //SetTowerRUDBtns(-1); if (towers_by_spots.ContainsKey(spotid)) { if (towers_by_spots[spotid] != null) { TowerControl tcontrol = towers_by_spots[spotid].GetComponent <TowerControl>(); if (tcontrol.status.upgrade_level < 3) { bool can_upgrade = PlayerData.current_energy > GlobalData.TOWER_UPGRADE_COSTS[tcontrol.status.type][tcontrol.status.upgrade_level]; if (can_upgrade) { Debug.Log("upgrade_level " + tcontrol.status.upgrade_level); SoundControl.PlaySFX(GlobalData.SFX_Paths[13], true, true, true); towers_by_spots[spotid].GetComponent <TowerControl>().UpgradeTower(); this.gameObject.SetActive(false); } else { pnl_info.SetActive(false); } } else { pnl_info.SetActive(false); } } } if (Tower1.activeSelf) { Tower1.SetActive(false); } if (upgd.activeSelf) { upgd.SetActive(false); } Click_Outside(); } }
private void PressCancelButton() { A.SetActive(false); B.SetActive(false); C.SetActive(false); sell_button.SetActive(false); upgrade_button.SetActive(false); selected_unit_image.enabled = false; selected_unit_name.enabled = false; selected_unit_stat.enabled = false; TowerControl.delete_SelectionList(TowerControl.selected, TowerControl.selected_circle); TurretRangeCircle.Delete_Range_Circle(); if (Tooltip.tooltip) { Tooltip.Destroy_tooltip(Tooltip.tooltip); } }
public void RepairTower() { if ((!UI_Tutorial.activeSelf || GlobalData.TutCanBuildFree) || GlobalData.current_tutorial == 5) { if (GlobalData.current_tutorial == 5) { GameObject.FindGameObjectWithTag("TD_Level").GetComponent <TDLevelControl>().ActedOnTutorial(); } //SetTowerRUDBtns(-1); if (towers_by_spots.ContainsKey(spotid)) { if (towers_by_spots[spotid] != null) { TowerControl tcontrol = towers_by_spots[spotid].GetComponent <TowerControl>(); bool can_repair = tcontrol.status.health <GlobalData.TOWERSUPGRADEVALUES[tcontrol.status.type][tcontrol.status.upgrade_level].health && PlayerData.current_energy> GlobalData.TOWER_Repair_COSTS[tcontrol.status.type][tcontrol.status.upgrade_level]; if (can_repair) { SoundControl.PlaySFX(GlobalData.SFX_Paths[12], false, true, true); towers_by_spots[spotid].GetComponent <TowerControl>().RepairTower(); this.gameObject.SetActive(false); } else { pnl_info.SetActive(false); } } } if (Tower1.activeSelf) { Tower1.SetActive(false); } if (upgd.activeSelf) { upgd.SetActive(false); } Click_Outside(); } }
public void PlaceTower(RaycastHit2D hit) { if (towerBtnPressed != null) { TowerControl newTower = Instantiate(towerBtnPressed.TowerObject); newTower.Start(); newTower.sellPrice = towerBtnPressed.TowerPrice; newTower.transform.position = hit.transform.position; BuyTower(towerBtnPressed.TowerPrice); Manager.Instance.AudioSrc.PlayOneShot(SoundManager.Instance.TowerBuilt); RegisterTower(newTower); if (selectTower != null) { selectTower.DisableRange(); } selectTower = newTower; choiceTower.SetActive(false); towerInfo.SetActive(true); } }
public void DestrTower() { Manager.Instance.TotalMoney += selectTower.sellPrice; TowerList.Remove(this.selectTower); Collider2D selectBuild = null; foreach (Collider2D buildTag in BuildList) { if (buildTag.transform.position == selectTower.transform.position) { selectBuild = buildTag; buildTag.tag = "TowerSide"; break; } } BuildList.Remove(selectBuild); Destroy(selectTower.gameObject); selectTower = null; DisableChilds(); choiceTower.SetActive(true); }
public void DeleteTower() { Debug.Log("Delete Tower Test " + UI_Tutorial.activeSelf + " " + GlobalData.TutCanBuildFree + " " + GlobalData.current_tutorial); if (!UI_Tutorial.activeSelf || GlobalData.TutCanBuildFree || GlobalData.current_tutorial == 7) { if (GlobalData.current_tutorial == 7) { Debug.Log("DeleteTower acted on tutorial"); GameObject.FindGameObjectWithTag("TD_Level").GetComponent <TDLevelControl>().ActedOnTutorial(); } //SetTowerRUDBtns(-1); if (towers_by_spots.ContainsKey(spotid)) { if (towers_by_spots[spotid] != null) { //Give back 50% of cost TowerControl tcontrol = towers_by_spots[spotid].GetComponent <TowerControl>(); int last_towercost = GlobalData.TOWER_BUILD_COSTS[tcontrol.status.type]; Debug.Log("upgd lev " + tcontrol.status.upgrade_level); if (tcontrol.status.upgrade_level == 3) { last_towercost += GlobalData.TOWER_UPGRADE_COSTS[tcontrol.status.type][2]; last_towercost += GlobalData.TOWER_UPGRADE_COSTS[tcontrol.status.type][1]; last_towercost += GlobalData.TOWER_UPGRADE_COSTS[tcontrol.status.type][0]; } if (tcontrol.status.upgrade_level == 2) { last_towercost += GlobalData.TOWER_UPGRADE_COSTS[tcontrol.status.type][1]; last_towercost += GlobalData.TOWER_UPGRADE_COSTS[tcontrol.status.type][0]; } else if (tcontrol.status.upgrade_level == 1) { last_towercost += GlobalData.TOWER_UPGRADE_COSTS[tcontrol.status.type][0]; } last_towercost = (int)(last_towercost * 0.5f); int curruserenergy = PlayerData.current_energy; int totalenergyafterdelete = last_towercost + curruserenergy; if (totalenergyafterdelete <= 100) { PlayerData.energy_queue.Add(last_towercost); } else { int valuetogive = 100 - curruserenergy; PlayerData.energy_queue.Add(valuetogive); } SoundControl.PlaySFX(GlobalData.SFX_Paths[11], true, true, true); GameObject t = towers_by_spots[spotid]; towers_by_spots.Remove(spotid); t.transform.parent = null; Destroy(t); this.gameObject.SetActive(false); } } if (Tower1.activeSelf) { Tower1.SetActive(false); } if (upgd.activeSelf) { upgd.SetActive(false); } Click_Outside(); } }
// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) // if (Input.GetMouseButtonDown(0) && Input.touchCount > 0) { Vector2 mousePoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); RaycastHit2D hit = Physics2D.Raycast(mousePoint, Vector2.zero); if (hit.collider && (hit.collider.tag == "TowerSide" || hit.collider.tag == "TowerFull") && !EventSystem.current.IsPointerOverGameObject()) // if (hit.collider && (hit.collider.tag == "TowerSide" || hit.collider.tag == "TowerFull") && !EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)) { //buildTile.gameObject.GetComponent<SpriteRenderer>().color = Color.red; towerPanel.gameObject.SetActive(true); buildTile = hit.collider; SelectTile(); hitTile = hit; if (hit.collider.tag == "TowerSide") { if (selectTower != null) { selectTower.DisableRange(); } DisableChilds(); choiceTower.SetActive(true); } else if (hit.collider.tag == "TowerFull") { DisableChilds(); towerInfo.SetActive(true); foreach (TowerControl tower in TowerList) { if (tower.transform.position == hit.transform.position) { if (selectTower != null) { selectTower.DisableRange(); } selectTower = tower; break; } } if (selectTower != null) { ViewTowerInfo(); } } } else if (hit.collider && hit.collider.tag == "Respawn" && !EventSystem.current.IsPointerOverGameObject()) // else if(hit.collider && hit.collider.tag == "Respawn" && !EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)) { buildTile = hit.collider; SelectTile(); if (selectTower != null) { selectTower.DisableRange(); } Manager.Instance.ShowWavesInfo(); } else if (!EventSystem.current.IsPointerOverGameObject()) // else if(!EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)) { ClocePanel(); } } if (selectTower != null) { if (selectTower.NextUpgrade != null) { if (selectTower.NextUpgrade.Price <= Manager.Instance.TotalMoney) { upgradeBtn.interactable = true; } else { upgradeBtn.interactable = false; } } } }
void Awake() { _tower = FindObjectOfType <TowerControl>(); }
public void RegisterTower(TowerControl tower) { TowerList.Add(tower); }
public void RegisterTower(TowerControl tower)//регистрируем башню в списке башен на экране { TowerList.Add(tower); }
private void Awake() { instance = this; TurretTag = "Turret"; }
public void OpenMenu() { bool samespot = false; GameObject[] gameObjects = GameObject.FindGameObjectsWithTag("Tower"); float swidth = Screen.width; float sheight = Screen.height; string SelectedTower = this.gameObject.name; int towerid = int.Parse(this.gameObject.name); TowerSpotsGUIs.GetComponent <TowerSpotsGUIs>().spotid = towerid; int TowerNum = this.gameObject.transform.childCount; Vector2 mousepos = Input.mousePosition; float constant_offset_x = 200 * Screen.width / (GlobalData.orientationlandscape? 1024f : 768f); float constant_offset_y = 200 * Screen.height / (GlobalData.orientationlandscape? 768 : 1024); Vector3 info_offset = new Vector3(mousepos.x < Screen.width / 2? constant_offset_x : -constant_offset_x, mousepos.y < Screen.height / 2? constant_offset_y : -constant_offset_y, 0); TowerInfo.GetComponent <TowerButtonsPositions>().SetStartPos(this.gameObject, info_offset); TowerButtons.GetComponent <TowerButtonsPositions>().SetStartPos(this.gameObject); if (TowerNum == 0) { //X to Y //Z to X // Vector2 TowerSpotPosition= RectTransformUtility.WorldToScreenPoint(Camera.main, this.transform.position); // Debug.Log (TowerSpotPosition); // TowerButtons.GetComponent<RectTransform>().position= new Vector3 (TowerSpotPosition.x,TowerSpotPosition.y,0); TowerButtons.transform.Find("btn_Repair").gameObject.SetActive(false); TowerButtons.transform.Find("btn_Upgrade").gameObject.SetActive(false); TowerButtons.transform.Find("btn_Delete").gameObject.SetActive(false); for (int i = 1; i <= 5; i++) { bool can_build = (PlayerData.current_energy > GlobalData.TOWER_BUILD_COSTS[i]); TowerButtons.transform.Find("btn_Tower" + i).gameObject.SetActive(true); if (can_build) { TowerButtons.transform.Find("btn_Tower" + i).GetComponent <Image>().color = Color.white; } else { TowerButtons.transform.Find("btn_Tower" + i).GetComponent <Image>().color = Color.grey; } } } else { TowerControl tc = transform.GetChild(0).GetComponent <TowerControl>(); int tupgrade_level = tc.status.upgrade_level; int ttype = tc.status.type; int thealth = tc.status.health; //ToDo Check what is the level of the tower in the spot and the health of it //Vector2 TowerSpotPosition= RectTransformUtility.WorldToScreenPoint(Camera.main, this.transform.position); // Debug.Log (TowerSpotPosition); //TowerButtons.GetComponent<RectTransform>().position= new Vector3 (TowerSpotPosition.x,TowerSpotPosition.y,0); //TowerInfo.GetComponent<TowerButtonsPositions>().SetStartPos(this.gameObject, new Vector3(200, 200, 0)); //TowerButtons.GetComponent<TowerButtonsPositions>().SetStartPos(this.gameObject); bool can_repair = thealth <GlobalData.TOWERSUPGRADEVALUES[ttype][tupgrade_level].health && PlayerData.current_energy> GlobalData.TOWER_Repair_COSTS[ttype][tupgrade_level]; TowerButtons.transform.Find("btn_Repair").gameObject.SetActive(true); if (can_repair) { TowerButtons.transform.Find("btn_Repair").GetComponent <Image>().color = Color.white; } else { TowerButtons.transform.Find("btn_Repair").GetComponent <Image>().color = Color.grey; } TowerButtons.transform.Find("btn_Upgrade").gameObject.SetActive(true); if (tupgrade_level < 3) { bool can_upgrade = PlayerData.current_energy > GlobalData.TOWER_UPGRADE_COSTS[ttype][tupgrade_level]; if (can_upgrade) { TowerButtons.transform.Find("btn_Upgrade").GetComponent <Image>().color = Color.white; } else { TowerButtons.transform.Find("btn_Upgrade").GetComponent <Image>().color = Color.grey; } } else { TowerButtons.transform.Find("btn_Upgrade").GetComponent <Image>().color = Color.grey; } TowerButtons.transform.Find("btn_Delete").gameObject.SetActive(true); for (int i = 1; i <= 5; i++) { TowerButtons.transform.Find("btn_Tower" + i).gameObject.SetActive(false); } } TowerSpotsGUIs.SetActive(true); }
void OnMouseUp() { //Check if there isn't any GUI's open for build towers or upgrade/repair/remove towers GameObject UI_Tutorial = GameObject.Find("Canvas").transform.Find("InGame").transform.Find("Tutorial").gameObject; bool samespot = false; GameObject[] gameObjects = GameObject.FindGameObjectsWithTag("Tower"); float swidth = Screen.width; float sheight = Screen.height; string SelectedTower = this.gameObject.name; int towerid = int.Parse(this.gameObject.name); Debug.Log(CheckFirstTower.activeSelf + " " + !CheckUpgdTower.activeSelf); if (!CheckFirstTower.activeSelf && !CheckUpgdTower.activeSelf) { if (UI_Tutorial.activeSelf && !GlobalData.TutCanBuildFree) { TowerSpotsGUIs.GetComponent <TowerSpotsGUIs>().spotid = 0; } else { TowerSpotsGUIs.GetComponent <TowerSpotsGUIs>().spotid = towerid; } int TowerNum = this.gameObject.transform.childCount; Vector2 mousepos = Input.mousePosition; float constant_offset_x = 200 * Screen.width / (GlobalData.orientationlandscape? 1024f : 768f); float constant_offset_y = 200 * Screen.height / (GlobalData.orientationlandscape? 768 : 1024); Vector3 info_offset = new Vector3(mousepos.x < Screen.width / 2? constant_offset_x : -constant_offset_x, mousepos.y < Screen.height / 2? constant_offset_y : -constant_offset_y, 0); Debug.Log("OnMouseUp TutCanBuild" + GlobalData.TutCanBuildFree); if ((!UI_Tutorial.activeSelf || GlobalData.TutCanBuildFree) || (towerid == 0)) { TowerInfo.GetComponent <TowerButtonsPositions>().SetStartPos(this.gameObject, info_offset); TowerButtons.GetComponent <TowerButtonsPositions>().SetStartPos(this.gameObject); } Debug.Log("On Mouse Up " + TowerNum); if (TowerNum == 0) { //X to Y //Z to X Debug.Log(UI_Tutorial.activeSelf + " currtut " + GlobalData.current_tutorial + " towerid " + towerid); if (!GlobalData.introlevelanim && ((!UI_Tutorial.activeSelf || GlobalData.TutCanBuildFree) || (towerid == 0 && GlobalData.current_tutorial == 1))) { if (GlobalData.current_tutorial == 1) { GameObject.FindGameObjectWithTag("TD_Level").GetComponent <TDLevelControl>().ActedOnTutorial(); } Debug.Log("curtutorial " + GlobalData.current_tutorial); TowerButtons.transform.Find("btn_Repair").gameObject.SetActive(false); TowerButtons.transform.Find("btn_Upgrade").gameObject.SetActive(false); TowerButtons.transform.Find("btn_Delete").gameObject.SetActive(false); for (int i = 1; i <= 5; i++) { bool can_build = (PlayerData.current_energy > GlobalData.TOWER_BUILD_COSTS[i]); TowerButtons.transform.Find("btn_Tower" + i).gameObject.SetActive(true); if (can_build) { TowerButtons.transform.Find("btn_Tower" + i).GetComponent <Image>().color = Color.white; } else { TowerButtons.transform.Find("btn_Tower" + i).GetComponent <Image>().color = Color.grey; } } } } else { if (!GlobalData.introlevelanim && ((!UI_Tutorial.activeSelf || GlobalData.TutCanBuildFree) || (towerid == 0 && GlobalData.current_tutorial == 4))) { if (GlobalData.current_tutorial == 4) { GlobalData.enemyatacktower_tut = true; } TowerControl tc = transform.GetChild(0).GetComponent <TowerControl>(); int tupgrade_level = tc.status.upgrade_level; int ttype = tc.status.type; int thealth = tc.status.health; //ToDo Check what is the level of the tower in the spot and the health of it //Vector2 TowerSpotPosition= RectTransformUtility.WorldToScreenPoint(Camera.main, this.transform.position); // Debug.Log (TowerSpotPosition); //TowerButtons.GetComponent<RectTransform>().position= new Vector3 (TowerSpotPosition.x,TowerSpotPosition.y,0); //TowerInfo.GetComponent<TowerButtonsPositions>().SetStartPos(this.gameObject, new Vector3(200, 200, 0)); //TowerButtons.GetComponent<TowerButtonsPositions>().SetStartPos(this.gameObject); bool can_repair = thealth <GlobalData.TOWERSUPGRADEVALUES[ttype][tupgrade_level].health && PlayerData.current_energy> GlobalData.TOWER_Repair_COSTS[ttype][tupgrade_level]; TowerButtons.transform.Find("btn_Repair").gameObject.SetActive(true); if (can_repair) { TowerButtons.transform.Find("btn_Repair").GetComponent <Image>().color = Color.white; } else { TowerButtons.transform.Find("btn_Repair").GetComponent <Image>().color = Color.grey; } TowerButtons.transform.Find("btn_Upgrade").gameObject.SetActive(true); if (tupgrade_level < 3) { bool can_upgrade = PlayerData.current_energy > GlobalData.TOWER_UPGRADE_COSTS[ttype][tupgrade_level]; if (can_upgrade) { TowerButtons.transform.Find("btn_Upgrade").GetComponent <Image>().color = Color.white; } else { TowerButtons.transform.Find("btn_Upgrade").GetComponent <Image>().color = Color.grey; } } else { TowerButtons.transform.Find("btn_Upgrade").GetComponent <Image>().color = Color.grey; } TowerButtons.transform.Find("btn_Delete").gameObject.SetActive(true); for (int i = 1; i <= 5; i++) { TowerButtons.transform.Find("btn_Tower" + i).gameObject.SetActive(false); } } } TowerSpotsGUIs.SetActive(true); } }