/// <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); }
/// <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; } }
/// <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; } }
/// <summary> /// Векторные вычисления /// </summary> protected override void VectorCalculating() { // если врага нет - ищем врага if (_attackedObject == null) { _attackedObject = GameObjectsTransformFinder .GetEnemyUnit(transform, _standartRadius / 4, typeOfEnemyChoice); } if (_attackedObject != null && !_isFighting && mayToCheckForEnemy) { _isFighting = true; } }