Esempio n. 1
0
 public void DisableSiblings(AwokenUnit unitToFindSiblings)
 {
     foreach (AwokenUnit unit in FindUnlockedSiblings(unitToFindSiblings))
     {
         unit.gameObject.SetActive(false);
     }
 }
Esempio n. 2
0
    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;
    }
Esempio n. 3
0
    public void OnButtonClick(int index)
    {
        awokenUnit = pathButtons[index].Unit;

        if (awokenUnit != null)
        {
            buildManager.SelectUnitToPlace(awokenUnit);
            HideAwakenPanel();
        }
        else
        {
            dialog.DisplayDialog("COMING SOON");
        }
    }
Esempio n. 4
0
    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);
    }