Exemple #1
0
    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.
 }
Exemple #3
0
 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);
    }
Exemple #5
0
    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());
        }
    }
Exemple #6
0
 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();
     }
 }
Exemple #7
0
    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();
     }
 }
Exemple #9
0
 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();//деактивируем картинку башни на курсоре
     }
 }
Exemple #10
0
 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();
     }
 }
Exemple #11
0
 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();
     }
 }
Exemple #12
0
    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;
    }
Exemple #13
0
 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();
 }
Exemple #14
0
 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();
        }
    }
Exemple #16
0
 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();
        }
    }
Exemple #18
0
 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);
     }
 }
Exemple #19
0
    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();
        }
    }
Exemple #21
0
 // 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;
             }
         }
     }
 }
Exemple #22
0
 void Awake()
 {
     _tower = FindObjectOfType <TowerControl>();
 }
Exemple #23
0
 public void RegisterTower(TowerControl tower)
 {
     TowerList.Add(tower);
 }
Exemple #24
0
 public void RegisterTower(TowerControl tower)//регистрируем башню в списке башен на экране
 {
     TowerList.Add(tower);
 }
Exemple #25
0
 private void Awake()
 {
     instance  = this;
     TurretTag = "Turret";
 }
Exemple #26
0
    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);
    }
Exemple #27
0
    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);
        }
    }