private Vector3 goalPos;                          //The current goal position

    void Awake()
    {
        //SEARCHING INSTANTIATION CODE
        search    = GetComponent <SearchingState>();                    //we make search hold a reference of the SearchState script
        inASearch = false;                                              //Set the searching state false by default

        //GEMS INSTANTIATION CODE
        gemTracker   = gemTrackerObject.GetComponent <GemTracker>();            //This is to allows us to keep track of gems
        gemPositions = new List <Vector3>();                                    //create new list of Vector3 positions for the gems
        searchNewGem = true;                                                    //set the searchNewGem to true upon start
        closestGem   = new Vector3();

        //SIGHT INSTANTIATION CODE
        sight = GetComponent <SightController>();

        //ATTACKING INSTANTIATION CODE
        attack = GetComponent <AttackingState>();
        player = GameObject.FindGameObjectWithTag("Player");

        //HEALTH INSTANTIATION CODE
        health = GetComponent <NPC1Health>();

        //CHASE INSTANTIATION CODE
        chasing = false;

        //PLAYER DETECTION INSTANTIATION CODE
        playerDetectionTimer = 3f;
        playerPos            = new Vector3();

        //FLEEING INSTATIATION CODE
        escapePos = new Vector3();
        goalPos   = new Vector3();
        fleeing   = false;
    }
 void Awake()
 {
     search    = GetComponent <SearchingState>();                    //we make search hold a reference of the SearchState script
     inASearch = false;                                              //Set the searching state false by default
     attack    = GetComponent <AttackingState>();
     player    = GameObject.FindGameObjectWithTag("Player");
 }
 void Awake()
 {
     sight             = GetComponent <SightController>();
     search            = GetComponent <SearchingState>();
     currPlayerPos     = new Vector3(1000f, 1000f, 1000f);
     lastPlayerSeenPos = new Vector3(0f, 0f, 0f);
     chaseTimer        = 5f;
 }
    private void Start()
    {
        Debug.Log("Bee");
        movementSM = new StateMachine();
        searching  = new SearchingState(this, movementSM);
        fleeing    = new FleeingState(this, movementSM);
        gathering  = new GatheringState(this, movementSM);
        dancing    = new DancingState(this, movementSM);
        atHive     = new AtHiveState(this, movementSM);

        movementSM.Initialize(searching);  // Default
    }
    private void Awake()
    {
        chaseState      = new ChaseState(this);
        patrolState     = new PatrolState(this);
        guardState      = new GuardState(this);
        dazedState      = new DazedState(this);
        distractedState = new DistractedState(this);
        searchingState  = new SearchingState(this);
        suspiciousState = new SuspiciousState(this);
        koState         = new KOState(this);
        walkState       = new WalkState(this);

        navMeshAgent = GetComponent <NavMeshAgent>();
    }
    private void Awake()
    {
        chaseState = new ChaseState(this);
        patrolState = new PatrolState(this);
        guardState = new GuardState(this);
        dazedState = new DazedState(this);
        distractedState = new DistractedState(this);
        searchingState = new SearchingState(this);
        suspiciousState = new SuspiciousState(this);
        koState = new KOState(this);
        walkState = new WalkState(this);
        pointSearchState = new PointSearchState(this);

        navMeshAgent = GetComponent<NavMeshAgent>();
        player = GameObject.FindGameObjectWithTag("Player");
        Path = Pathways[0];
        AIPath CheckpointScript = Path.GetComponent<AIPath>();
        navPoint = CheckpointScript.getPoints()[0];
        currentState = patrolState; //sets the current state
        NoOcclusionLM = 1 << noOcclusionLayer;
        NoOcclusionLM = ~NoOcclusionLM;
    }