public void DisableSiblings(AwokenUnit unitToFindSiblings) { foreach (AwokenUnit unit in FindUnlockedSiblings(unitToFindSiblings)) { unit.gameObject.SetActive(false); } }
public void PlaceUnit(Unit unitToPlace) { if (unit != null) { RemoveUnit(unit); } if (unitManager.IsUnitAwoken(unitToPlace)) { AwokenUnit awokenUnit = unitToPlace.gameObject.GetComponent <AwokenUnit>(); if (unitManager.unlockedUnits.ContainsKey(awokenUnit.originalUnit.unitName)) { Unit unitToRemove = unitManager.unlockedUnits[awokenUnit.originalUnit.unitName]; RemoveUnit(unitToRemove); } List <AwokenUnit> awokenSiblings = unitManager.FindUnlockedSiblings(awokenUnit); if (awokenSiblings.Count > 0) { foreach (AwokenUnit sibling in awokenSiblings) { RemoveUnit(sibling); } } } if (unitManager.unlockedUnits.ContainsKey(unitToPlace.unitName)) { unitToPlace.gameObject.SetActive(true); unitToPlace.transform.position = transform.position; if (unitToPlace.currentNode != null) { unitToPlace.currentNode.unit = null; unitToPlace.currentNode.isUnitOnNode = false; } unitToPlace.currentNode = this; unit = unitToPlace; isUnitOnNode = true; return; } Unit newUnit = Instantiate(unitToPlace, transform.position, Quaternion.identity); newUnit.transform.parent = unitManager.transform; newUnit.currentNode = this; unitManager.UnlockUnit(newUnit); unit = newUnit; isUnitOnNode = true; }
public void OnButtonClick(int index) { awokenUnit = pathButtons[index].Unit; if (awokenUnit != null) { buildManager.SelectUnitToPlace(awokenUnit); HideAwakenPanel(); } else { dialog.DisplayDialog("COMING SOON"); } }
public List <AwokenUnit> FindUnlockedSiblings(AwokenUnit unitToSearch) { List <AwokenUnit> siblings = new List <AwokenUnit>(); for (int i = 0; i < unitToSearch.originalUnit.awokenUnits.Length; i++) { AwokenUnit sibling = unitToSearch.originalUnit.awokenUnits[i]; if (sibling != null) { if (unitToSearch.unitName != sibling.unitName) { if (unlockedUnits.ContainsKey(sibling.unitName)) { siblings.Add(unlockedUnits[sibling.unitName] as AwokenUnit); } } } } return(siblings); }