Esempio n. 1
0
 public void RemoveSoulWell(SoulTower tower)
 {
     if (SoulWellsAttached.Contains(tower))
     {
         SoulWellsAttached.Remove(tower);
     }
 }
Esempio n. 2
0
 public void AddSoulWell(SoulTower tower)
 {
     if (!SoulWellsAttached.Contains(tower))
     {
         SoulWellsAttached.Add(tower);
     }
 }
Esempio n. 3
0
    void OnGUI()
    {
        GUI.skin = boxSkin;
        if (showTowerMenu && hoveredPlane)
        {
            Vector3 boxPosition = Camera.main.WorldToScreenPoint(selectedTower.transform.position);

            int boxWidth  = 100;
            int boxHeight = 100;
            int boxX      = (int)(boxPosition.x - boxWidth * 0.5f);
            int boxY      = (int)(Screen.height - boxPosition.y - boxHeight * 0.5f);
            GUI.Box(new Rect(boxX, boxY, boxWidth, boxHeight), "");

            for (int i = 0; i < GameData.instance.GetCurrentLevel().towers.Count; i++)
            {
                switch (GameData.instance.GetCurrentLevel().towers[i].index)
                {
                case 1:
                    if (GUI.Button(new Rect(boxX, boxY, 20, 20), "1"))
                    {
                        showTowerMenu = false;
                        SpawnTower(0);
                    }
                    break;

                case 2:
                    if (GUI.Button(new Rect(boxX + 40, boxY, 20, 20), "2"))
                    {
                        showTowerMenu = false;
                        SpawnTower(1);
                    }
                    break;

                case 3:
                    if (GUI.Button(new Rect(boxX + 80, boxY, 20, 20), "3"))
                    {
                        showTowerMenu = false;
                        SpawnTower(2);
                    }
                    break;

                case 4:
                    if (GUI.Button(new Rect(boxX, boxY + 80, 20, 20), "4"))
                    {
                        showTowerMenu = false;
                        SpawnTower(3);
                    }
                    break;

                case 5:
                    if (GUI.Button(new Rect(boxX + 40, boxY + 80, 20, 20), "5"))
                    {
                        showTowerMenu = false;
                        SpawnTower(4);
                    }
                    break;

                case 6:
                    if (GUI.Button(new Rect(boxX + 80, boxY + 80, 20, 20), "6"))
                    {
                        showTowerMenu = false;
                        SpawnTower(5);
                    }
                    break;
                }
            }

            if (GUI.Button(new Rect(boxX + 40, boxY + 40, 20, 20), "X"))
            {
                showTowerMenu = false;
                hoveredPlane.GetComponent <Renderer>().material = originalMat;
                hoveredPlane = null;
            }
            //GENERATE Generic Tower

            /*if (GUI.Button (new Rect (boxX+80,boxY+120,20,20), "G"))
             * {
             *  showTowerMenu = false;
             *  SpawnTower(6);
             * }*/

            //GENERATE SOUL WELL
            if (GUI.Button(new Rect(boxX, boxY + 120, 20, 20), "S"))
            {
                showTowerMenu = false;
                SpawnTower(7);
            }
        }

        else if (showUpgradeMenu && hoveredTower)
        {
            Vector3 upgradeBoxPosition = Camera.main.WorldToScreenPoint(hoveredTower.transform.position);

            int upgradeBoxWidth  = 100;
            int upgradeBoxHeight = 100;
            int upgradeBoxX      = (int)(upgradeBoxPosition.x - upgradeBoxWidth * 0.5f);
            int upgradeBoxY      = (int)(Screen.height - upgradeBoxPosition.y - upgradeBoxHeight * 0.5f);
            GUI.Box(new Rect(upgradeBoxX, upgradeBoxY, upgradeBoxWidth, upgradeBoxHeight), "");

            if (!linkingTower)
            {
                if (hoveredTower.transform.parent.gameObject.tag == "SoulWell")
                {
                    if (GUI.Button(new Rect(upgradeBoxX + 15, upgradeBoxY - 35, 70, 20), "Link"))
                    {
                        soulTower       = hoveredTower.GetComponent <SoulTower>();
                        linkingTower    = true;
                        hoveredTower    = null;
                        showUpgradeMenu = false;
                    }
                }

                if (getTowerLevel() >= 3)
                {
                    hoveredTower    = null;
                    showUpgradeMenu = false;
                }
                else
                {
                    if (getTowerLevel() < 2)
                    {
                        if (GUI.Button(new Rect(upgradeBoxX + 15, upgradeBoxY + 15, 70, 20), "Upgrade"))
                        {
                            UpgradeTower();
                            hoveredTower    = null;
                            showUpgradeMenu = false;
                        }
                    }
                    else
                    {
                        if (GUI.Button(new Rect(upgradeBoxX + 15, upgradeBoxY + 15, 70, 20), "Special1"))
                        {
                            UpgradeTower();
                            hoveredTower    = null;
                            showUpgradeMenu = false;
                        }

                        if (GUI.Button(new Rect(upgradeBoxX + 15, upgradeBoxY + 40, 70, 20), "Special2"))
                        {
                            UpgradeTower(2);
                            hoveredTower    = null;
                            showUpgradeMenu = false;
                        }
                    }

                    if (GUI.Button(new Rect(upgradeBoxX + 15, upgradeBoxY + 65, 70, 20), "Cancel"))
                    {
                        hoveredTower    = null;
                        showUpgradeMenu = false;
                    }
                }
            }
            else
            {
                linkTower();
                showUpgradeMenu = false;
                hoveredTower    = null;
                linkingTower    = false;
            }
        }
    }