public override void Awake() { //Debug.Log("Search State Awake"); if (_minionController.isBoss == false) { return; } _nodes = GameManager.Instance.nodesList; _closestNode = FindNearestNode(); _destinyNode = GetRandomNode(); _pointer = 0; // Reset Pointer. _avoid.SetTarget(_minionController.currentNode); _path = _aStar.Run(_closestNode, Satisfies, GetNeighbours, GetCost, Heuristic); }
private void CheckDistance() { if (_enemyTransform == null) { return; } currentDistance = (_enemyTransform.position - _minionController.transform.position).magnitude; if (currentDistance > 8) { avoid.SetTarget(_minionController.currentEnemy); _minionController.Move(avoid.GetDirection()); _minionController.Look(_enemyTransform.position); //Debug.Log($"Enemy Transform: {_enemyTransform.position}"); } if (currentDistance <= 10) { AttackEnemy(); } }
public override void Awake() { Debug.Log("Pursuit State Awake"); if (_minionController.IsBossAlive() == false) { _enemyController = _minionController.SelectRandomEnemy(); _enemyTransform = _enemyController.transform; } _enemyTransform = _minionController.currentEnemy; if (_enemyTransform == null || _enemyController == null) { _enemyController = _minionController.SelectRandomEnemy(); _enemyTransform = _enemyController.transform; } _enemyController = _enemyTransform.GetComponent <MinionController>(); avoid = new Avoid(_minionController.transform, _minionController.lineOfSight.obstaclesLayer, _minionController.obstacleRadius, _minionController.obstacleWeight); avoid.SetTarget(_enemyTransform); }