public void RemoveSoulWell(SoulTower tower) { if (SoulWellsAttached.Contains(tower)) { SoulWellsAttached.Remove(tower); } }
public void AddSoulWell(SoulTower tower) { if (!SoulWellsAttached.Contains(tower)) { SoulWellsAttached.Add(tower); } }
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; } } }