Beispiel #1
0
    public CubeUpgrade GetNearbyUpgrade(Worker worker, CubeUpgradeTypes upgradeRequested)
    {
        CubeList.Clear();
        foreach (var item in CurrentCubes)
        {
            if (item.Value.CurrentUpgradeType == upgradeRequested)
            {
                CubeList.Add(item.Value.CurrentUpgrade);
            }
        }
        if (CubeList.Count > 0)
        {
            //get nearest upgrade
            float       _dist = Mathf.Abs(Vector3.Distance(worker.transform.position, CubeList[0].transform.position));
            CubeUpgrade _temp = CubeList[0];
            for (int i = 0; i < CubeList.Count; i++)
            {
                if (Mathf.Abs(Vector3.Distance(worker.transform.position, CubeList[i].transform.position)) < _dist)
                {
                    _temp = CubeList[i];
                    _dist = Mathf.Abs(Vector3.Distance(worker.transform.position, CubeList[i].transform.position));
                }
            }
            return(_temp);
        }

        return(null);
    }
Beispiel #2
0
    public void UpgradeTile(CubeUpgradeTypes newUpgradeType)
    {
        if (CurrentUpgrade)
        {
            Destroy(CurrentUpgrade.gameObject);
            CurrentUpgrade     = null;
            CurrentUpgradeType = CubeUpgradeTypes.Nil;
            //HACK:
            return;

            Destroy(CurrentUpgrade);
        }
    }
Beispiel #3
0
    public void UpgradeTile(CubeUpgrade newUpgrade)
    {
        if (CurrentUpgrade)
        {
            Destroy(newUpgrade.gameObject);
            //HACK:
            return;

            Destroy(CurrentUpgrade);
        }

        CurrentUpgrade                     = newUpgrade;
        CurrentUpgrade.MyCube              = this;
        CurrentUpgradeType                 = newUpgrade.UpgradeType;
        newUpgrade.transform.parent        = transform;
        newUpgrade.transform.localPosition = Vector3.zero;
    }