private bool HasEnoughSpecialScraps(List <int>[] inventory, TowerRessourceManagement towermanagement) { return((inventory[(int)ScrapType.MELEE].Count >= 1 && towermanagement.NeedsMeeleScraps) || (inventory[(int)ScrapType.WATERTOWERSCRAP].Count >= 1 && towermanagement.NeedsBottleScraps) || (inventory[(int)ScrapType.TIDEPOD].Count >= 1 && towermanagement.NeedsGrenadeScraps) || (inventory[(int)ScrapType.PUSTEFIX].Count >= 1 && towermanagement.NeedsPustefixScraps)); }
public void UpgradeWithScrap(TowerRessourceManagement towermanagement, int scrapType, int subtypeIndex) { if (towermanagement.ScrapSlotsOnTowerAreFree() && _playerInventory.SubTypeIsInInventory(scrapType, subtypeIndex)) { towermanagement.AddNeededScrapOfCertainSubTypeIndex(_playerScraps, subtypeIndex); _playerInventory.RemoveScrapBySubTypeIndex(scrapType, subtypeIndex); } }
private void RemoveAnyNeededScrapFromInventory(TowerRessourceManagement towermanagement) { for (int scrapTypeIndex = 0; scrapTypeIndex < towermanagement.NeededScraps.Length; scrapTypeIndex++) { if (towermanagement.NeededScraps[scrapTypeIndex]) { _playerInventory.RemoveAnyScrap(scrapTypeIndex); } } }
public void BuildTower(GameObject selectedTower) { selectedTower.tag = "Tower"; TowerRessourceManagement towermanagement = selectedTower.GetComponent <TowerRessourceManagement>(); GameObject scrapObject = towermanagement.AddNeededScrap(_playerScraps); scrapObject.SetActive(false); selectedTower.GetComponentInChildren <TowerAnimationEvent>().NewScrap = scrapObject; RemoveAnyNeededScrapFromInventory(towermanagement); }
public void UpgradeWithAnyScrap(TowerRessourceManagement towermanagement) { if (!CheckForRessources(_playerScraps, towermanagement)) { return; } if (towermanagement.ScrapSlotsOnTowerAreFree()) { towermanagement.AddNeededScrap(_playerScraps); RemoveAnyNeededScrapFromInventory(towermanagement); } }
void Start() { _towerRessourceManagement = GetComponentInParent <TowerRessourceManagement>(); spawnpoints = new List <GameObject>(); _towersounds = GetComponentInParent <TowerSounds>(); for (int i = 0; i < transform.childCount; i++) { if (transform.GetChild(i).tag == "SpawnpointBubbleTower") { spawnpoints.Add(transform.GetChild(i).GetChild(0).gameObject); } } }
public void OpenTowerBuildingMenu(GameObject selectedTower) { EnableCursor(); _selectedTower = selectedTower; TowerRessourceManagement towermanagement = selectedTower.GetComponent <TowerRessourceManagement>(); for (int scrapTypeIndex = 0; scrapTypeIndex < towermanagement.NeededScraps.Length; scrapTypeIndex++) { if (towermanagement.NeededScraps[scrapTypeIndex]) { InstantiateButtonForEachSubPrefab((ScrapType)scrapTypeIndex); } } Time.timeScale = 0.0f; }
private void TowerUpgradeRayCast() { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, Mathf.Infinity, FromUpgradeRaycastAcknowledgedLayer)) { if (hit.transform.gameObject.CompareTag("Tower") && Vector3.Distance(transform.position, hit.transform.position) <= MaxDistanceToTower && IsInDefaultMode) { _towerBuildingUI.ShowTowerKillNotification(); TowerRessourceManagement towermanagement = hit.transform.gameObject.GetComponent <TowerRessourceManagement>(); if (_towerBuilding.CheckForRessources(_scrapInventory.ScrapInventory, towermanagement) && towermanagement.ScrapSlotsOnTowerAreFree()) { _towerBuildingUI.ShowTowerUpgraeNotification(); } if (Input.GetButtonDown("Upgrade Tower") && IsInDefaultMode) { _towerBuildingUI.OpenTowerBuildingMenu(hit.transform.gameObject); } if (Input.GetButtonDown("Deconstruct Tower") && IsInDefaultMode) { _towerBuildingUI.CloseTowerUpgradeNotification(); _towerBuildingUI.CloseTowerBuildingMenu(); hit.transform.gameObject.GetComponent <Tower>().Kill(); } if (Input.GetButtonDown("QuickUpgrade Tower") && IsInDefaultMode) { _towerBuildingUI.CloseTowerUpgradeNotification(); _towerBuildingUI.CloseTowerBuildingMenu(); _towerBuilding.UpgradeWithAnyScrap(hit.transform.gameObject.GetComponent <TowerRessourceManagement>()); } } } else { _towerBuildingUI.CloseTowerKillNotification(); _towerBuildingUI.CloseTowerUpgradeNotification(); } }
internal bool CheckForRessources(List <int>[] inventory, TowerRessourceManagement towermanagement) { return(HasEnoughSpecialScraps(inventory, towermanagement) && _playerInventory.ClassicScraps >= towermanagement.NeededClassicScraps); }
internal bool TowerBuildingAllowed(GameObject selectedTower) { TowerRessourceManagement towermanagement = selectedTower.GetComponent <TowerRessourceManagement>(); return(CheckForRessources(_playerScraps, towermanagement)); }