コード例 #1
0
        /// <summary>
        /// Сменить врага
        /// </summary>
        /// <returns></returns>
        public bool ChangeEnemy()
        {
            _changeEnemyFlag = false;
            if (_isAlive)
            {
                CheckList();
                _newAttackedObject =
                    GameObjectsTransformFinder.GetEnemyUnit(transform,
                                                            _standartRadius, typeOfEnemyChoice);

                if (_newAttackedObject != null &&
                    _attackedObject != null)
                {
                    if (_newAttackedObject.GetComponent <EnemyAbstract>().AttackedObject != null &&
                        _newAttackedObject.GetComponent <EnemyAbstract>().AttackedObject.Equals(gameObject))
                    {
                        _attackedObject.GetComponent <EnemyAbstract>().DecreaseCountOfTurrelFighters(null);
                        _attackedObject = _newAttackedObject;
                        _attackedObject.GetComponent <EnemyAbstract>().IncreaseCountOfTurrelFighters(null);
                        _changeEnemyFlag = true;
                    }
                    else
                    {
                        _enemyList.Remove(_newAttackedObject);
                        _changeEnemyFlag = false;
                    }
                }
                else
                {
                    _changeEnemyFlag = false;
                }
            }
            return(_changeEnemyFlag);
        }
コード例 #2
0
        /// <summary>
        /// Векторные вычисления
        /// </summary>
        protected virtual void VectorCalculating()
        {
            // если врага нет - ищем врага
            if (_attackedObject == null)
            {
                _attackedObject = GameObjectsTransformFinder
                                  .GetEnemyUnit(transform, _standartRadius / 4, typeOfEnemyChoice);
            }

            // переходим в боевую готовность
            if (_attackedObject != null && !_isFighting)
            {
                _attackedObject.GetComponent <EnemyAbstract>().CallToFight();
                if (!ChangeEnemy())
                {
                    AddToList(_attackedObject); // adding to list
                    _attackedObject.GetComponent <EnemyAbstract>().IncreaseCountOfTurrelFighters(null);
                    //Debug.Log(_attackedObject.name + " => " + gameObject.name);
                }
                //Debug.Log("Воюем");
                _point = _attackedObject.GetComponent <EnemyAbstract>().SwitchPoint();
                CalculatePoint(_point);
                _canRandomWalk = false;
                _isFighting    = true;
            }
        }
コード例 #3
0
        /// <summary>
        /// Векторные вычисления
        /// </summary>
        protected override void VectorCalculating()
        {
            if (_attackedObject == null)
            {
                _attackedObject = GameObjectsTransformFinder
                                  .GetEnemyUnit(transform, _standartRadius / 4, typeOfEnemyChoice);
            }

            if (_attackedObject != null &&
                !_isFighting)
            {
                if (!ChangeEnemy())
                {
                    AddToList(_attackedObject); // adding to list

                    _distance =
                        Vector3.Distance(gameObject.transform.position,
                                         _attackedObject.transform.position);
                    if (!(_distance <= _maxEdge) || !(_distance > _maxEdge / 4) || !(_countOfAmmo > 0))
                    {
                        _attackedObject.GetComponent <EnemyAbstract>()
                        .IncreaseCountOfTurrelFighters(null);
                    }
                }
                _point         = _attackedObject.GetComponent <EnemyAbstract>().SwitchPoint();
                _canRandomWalk = false;
                _isFighting    = true;
            }
        }
コード例 #4
0
        /// <summary>
        /// Векторные вычисления
        /// </summary>
        protected override void VectorCalculating()
        {
            // если врага нет - ищем врага
            if (_attackedObject == null)
            {
                _attackedObject = GameObjectsTransformFinder
                                  .GetEnemyUnit(transform, _standartRadius / 4, typeOfEnemyChoice);
            }

            if (_attackedObject != null && !_isFighting && mayToCheckForEnemy)
            {
                _isFighting = true;
            }
        }