public void AssignSearchTask(Vector3 positionToSearch)
      {
          if (stateController.currentState == AIStateType.COMBAT)
          {
              return;
          }

          stateController.ChangeState(AIStateType.SEARCH);

          originalStartSearchAreaPosition = positionToSearch;
          currentSearchAreaPosition       = originalStartSearchAreaPosition;

          movementController.SetAgentDestination(positionToSearch);
      }
        public void Tick()
        {
            if (!CheckIfTargetIsAlive())
            {
                stateController.ChangeState(stateController.startState);
                return;
            }

            RotateTowardsTarget();
            MoveTowardsTarget();

            if (CheckIfTargetIsInLineOfSight() == false)
            {
                UpdateAnimValues(1, 0);
                return;
            }

            if (CheckIsInCombatDistance() == false)
            {
                return;
            }

            EnterShootStance();

            if (CheckIfCanAttack() == false)
            {
                return;
            }

            AttackBasedOnWeaponType();
        }