Example #1
0
        public void _SelectTower(UnitTower tower)
        {
            _ClearSelectedTower();

            selectedTower = tower;

            if (onTowerSelected != null)
            {
                onTowerSelected(tower);
            }

            if (tower.type == _TowerType.Block || tower.type == _TowerType.Resource)
            {
                return;
            }

            float range = tower.GetAttackRange();

            Transform indicatorT = !tower.directionalTargeting ? rangeIndicator : rangeIndicatorCone;

            if (indicatorT != null)
            {
                indicatorT.parent     = tower.thisT;
                indicatorT.position   = tower.thisT.position;
                indicatorT.localScale = new Vector3(2 * range, 1, 2 * range);

                if (tower.directionalTargeting)
                {
                    indicatorT.localRotation = Quaternion.identity * Quaternion.Euler(0, tower.dirScanAngle, 0);
                }

                indicatorT.gameObject.SetActive(true);
            }
        }