Пример #1
0
        private void CheckAndAttackDistractor(Transform closestDistractor, float normalizedAngle)
        {
            if (_lazingAround)
            {
                StopCoroutine(_coroutine);
                _lazingAround = false;
            }

            LookAtTarget(closestDistractor);
            if (TowerControllerHelpers.IsAngleWithinToleranceLevel(normalizedAngle, attackAngleTolerance))
            {
                _coroutine = StartCoroutine(AttackTarget(closestDistractor));
            }
        }
Пример #2
0
        private void CheckAndAttackPlayer(float normalizedAngle)
        {
            if (_lazingAround)
            {
                StopCoroutine(_coroutine);
                _lazingAround = false;
            }

            LookAtTarget(_player);
            MissionManager.instance.IncrementSpottedTimes();

            if (TowerControllerHelpers.IsAngleWithinToleranceLevel(normalizedAngle, attackAngleTolerance))
            {
                _coroutine = StartCoroutine(AttackTarget(_player));
            }
        }
Пример #3
0
        private void Update()
        {
            if (_deactivateTower)
            {
                return;
            }

            if (!_attacking)
            {
                var normalizedAngle = TowerControllerHelpers
                                      .CheckTargetInsideFOV(_player,
                                                            towerTop, maxTargetRange, maxLookAngle);

                if (normalizedAngle != -1)
                {
                    CheckAndAttackPlayer(normalizedAngle);
                }
                else
                {
                    var closestDistractor = TowerControllerHelpers.GetClosestDistractor(
                        _distactorHolder, towerTop
                        );
                    normalizedAngle = TowerControllerHelpers
                                      .CheckTargetInsideFOV(closestDistractor,
                                                            towerTop, maxTargetRange, maxLookAngle, false);

                    if (normalizedAngle != -1)
                    {
                        CheckAndAttackDistractor(closestDistractor, normalizedAngle);
                    }
                    else
                    {
                        LazeAndLookAround();
                    }
                }
            }
        }