/// <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> /// <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 override void VectorCalculating() { enemyTemp = GameObjectsTransformFinder.IsEnemyIntoTarget(transform); if (enemyTemp != null && enemyTemp.GetComponent <EnemyAbstract>().IsAlive) { if (enemyTemp.GetComponent <EnemyAbstract>(). EnemyDamage(_parentObject.GetComponent <PlayerAbstract>().gameObject, _parentObject.GetComponent <PlayerAbstract>().PlayerType, _dmgBullet, 1) != 0 && _countOfPenetrations > 0) { //Debug.Log("Снижено"); _countOfPenetrations--; } else { if (_isClustered) { _cluster.transform.position = transform.position; CmdInstantiate(_cluster); Destroy(gameObject); } else { Destroy(gameObject); } } } }
/// <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; } }
public void CmdDead() { if (!isServer) { return; // Выполняем только на сервере } instantedPlayerReference.NumberOfUnits--; GameObjectsTransformFinder.RemoveFromPlayerTransformList(transform); RpcClientDeath(); }
/// <summary> /// Векторные вычисления /// </summary> protected virtual void VectorCalculating() { enemyTemp = GameObjectsTransformFinder.IsEnemyIntoTarget(transform); if (enemyTemp != null && enemyTemp.GetComponent <EnemyAbstract>().IsAlive) { enemyTemp.GetComponent <EnemyAbstract>() .EnemyDamage(_parentObject.GetComponent <PlayerAbstract>() .gameObject, _parentObject.GetComponent <PlayerAbstract>().PlayerType, _dmgForCluster, 1); Destroy(gameObject); } }
public void CmdDead() { if (!isServer) { return; // Выполняем только на сервере } GameObject.FindGameObjectWithTag("Core").GetComponent <RespawnWaver>().NumberOfEnemies--; GameObjectsTransformFinder .RemoveFromEnemyTransformList(transform); RpcClientDeath(); }
/// <summary> /// Векторные вычисления /// </summary> protected override void VectorCalculating() { // если врага нет - ищем врага if (_attackedObject == null) { _attackedObject = GameObjectsTransformFinder .GetEnemyUnit(transform, _standartRadius / 4, typeOfEnemyChoice); } if (_attackedObject != null && !_isFighting && mayToCheckForEnemy) { _isFighting = true; } }
/// <summary> /// Проверяем, столкнулся ли враг с башней /// </summary> /// <param name="collision"></param> private void FixedUpdate() { if (!isServer) { return; } enemyIntoTower = GameObjectsTransformFinder.IsEnemyIntoTarget(); if (enemyIntoTower != null) { HpTower -= 1; Timing.RunCoroutine(RedColorHp()); enemyIntoTower.GetComponent <EnemyAbstract>().CmdDead(); } }
/// <summary> /// Векторные вычисления /// </summary> protected override void VectorCalculating() { enemyTemp = GameObjectsTransformFinder.IsEnemyIntoTarget(transform); if (enemyTemp != null) { if (_can) { CmdBurner(_burningTime); } else if (enemyTemp.GetComponent <EnemyAbstract>().IsAlive) { enemyTemp.GetComponent <EnemyAbstract>(). EnemyDamageSafe(playerHelperInstance, typeUnit, _dmgPerSec, 2); } } }
/// <summary> /// Респаун врага непосредственно /// </summary> /// v1.01 private void Instansing() { GameObject clone = Instantiate(_currentEnemy); clone.name = "Enemy" + clone.GetComponent <EnemyAbstract>().EnemyType + "#Power" + clone.GetComponent <EnemyAbstract>().GetPower() + "#" + _numberOfEnemies; clone.GetComponent <EnemyAbstract>().EnemyType = clone.name; _numberOfEnemies++; clone.GetComponent <EnemyAbstract>().TypeOfEnemyChoice = GameObjectsTransformFinder.SetRandomTypeOfEnemyChoiceForPlayerUnit(); NetworkServer.Spawn(clone); GameObjectsTransformFinder .AddToEnemyTransformList(clone.transform); _enemyCountLevels[_instEnemy]--; _isMayBeInstanced = false; _respawnTime = (float)rnd.NextDouble() * rnd.Next(1, 4) * _tempRespawnTime; }
/// <summary> /// Векторные вычисления /// </summary> protected virtual void VectorCalculating() { if (_attackedObject == null) { _attackedObject = GameObjectsTransformFinder .GetPlayerUnit(transform, _radiusOfSearchingPlayerUnit); } if (_attackedObject != null && !_attackFlag) { _agent.enabled = true; _multiple = 0.01f; _attackFlag = true; _point = _attackedObject.GetComponent <PlayerAbstract>().SwitchPoint(); CalculatePoint(_point); _attackedObject.GetComponent <PlayerAbstract>().IncreaseCountOfTurrelFighters(gameObject); //Debug.Log(_attackedObject.name + " => " + gameObject.name); } }
/// <summary> /// Векторные вычисления /// </summary> protected override void VectorCalculating() { enemyTemp = GameObjectsTransformFinder.IsEnemyIntoTarget(transform); if (enemyTemp != null && enemyTemp.GetComponent <EnemyAbstract>().IsAlive) { enemyTemp.GetComponent <EnemyAbstract>() .EnemyDamage(_parentObject.GetComponent <PlayerAbstract>().gameObject, _parentObject.GetComponent <PlayerAbstract>().PlayerType, rnd.Next(_damage - (_damage / 3), _damage + (_damage / 3)), 1); if (_isClustered) { Destroy(gameObject); CmdInstantiate(); } else { Destroy(gameObject); } _parentObject.GetComponent <LiteStaticTurrel>().MineCounter--; } }
private void CmdInstantiateObject(string skillString, int currentNumber, GameObject playerHelper, Vector3 pos) { //Debug.Log(playerHelper.GetComponent<PlayerHelper>()); //Debug.Log(playerHelper.GetComponent<PlayerHelper>().GetPrefab(currentNumber)); GameObject objectForInstantiate = Instantiate(playerHelper.GetComponent <PlayerHelper>() .GetPrefab(currentNumber), pos, Quaternion.Euler(90, 0, 0)); objectForInstantiate.GetComponent <PlayerAbstract>().InstantedPlayerReference = playerHelper.GetComponent <PlayerHelper>(); objectForInstantiate.name = objectForInstantiate.GetComponent <PlayerAbstract>().PlayerType + "#" + _numberOfUnits; DataPlayer.SetNewSkillsOfUnitForInstantiate(skillString, objectForInstantiate, currentNumber); objectForInstantiate.GetComponent <PlayerAbstract>().TypeOfEnemyChoice = GameObjectsTransformFinder.SetRandomTypeOfEnemyChoiceForPlayerUnit(); NetworkServer.Spawn(objectForInstantiate); GameObjectsTransformFinder .AddToPlayerTransformList(objectForInstantiate.transform); objectForInstantiate.transform.parent = playerHelper.transform; }