Esempio n. 1
0
        protected override void HandleFrameUpdate(float elapsedTime)
        {
            base.HandleFrameUpdate(elapsedTime);

            // Check if the player is visible
            if (IsPlayerVisible())
            {
                // Start persuit of the player
                var persuit = new AIStatePersuit(controller);
                stateMachine.MoveTo(persuit);
            }
        }
Esempio n. 2
0
        protected override void HandleFrameUpdate(float elapsedTime)
        {
            base.HandleFrameUpdate(elapsedTime);

            if (IsPlayerVisible())
            {
                var persuit = new AIStatePersuit(controller);
                stateMachine.MoveTo(persuit);
                return;
            }

            // Since the player is not visible while we are patrolling, clear the last sighting
            controller.LastSighting.ClearSighting();

            var agent = controller.Agent;

            if (agent.remainingDistance < controller.destinationArriveProximity)
            {
                currentWaypointIndex++;
            }
            MoveToCurrentPoint();
        }
Esempio n. 3
0
        protected override void HandleFrameUpdate(float elapsedTime)
        {
            base.HandleFrameUpdate(elapsedTime);

            // Check if we can see the player
            if (IsPlayerVisible())
            {
                // The player is visible.  Start persuit of the player
                var persuit = new AIStatePersuit(controller);
                stateMachine.MoveTo(persuit);
                return;
            }

            // Check if we are near the last sighting position;
            if (controller.Agent.remainingDistance < controller.destinationArriveProximity)
            {
                // We have reached the last sighting position and still haven't found the player
                // Stand here and wait for a bit before returing to patrolling
                var waitAndSearch = new AIStateWaitAndSearch(controller);
                stateMachine.MoveTo(waitAndSearch);
            }
        }
Esempio n. 4
0
        protected override void HandleFrameUpdate(float elapsedTime)
        {
            base.HandleFrameUpdate(elapsedTime);

            // Check if the player is visible
            if (IsPlayerVisible())
            {
                // Start persuit of the player
                var persuit = new AIStatePersuit(controller);
                stateMachine.MoveTo(persuit);
            }

            timeSinceStart += elapsedTime;
            if (timeSinceStart >= controller.searchWaitTime)
            {
                // The player is not found and is lost. Clear the last sighting variable
                controller.LastSighting.ClearSighting();

                // Return back to the patrol state
                var patrol = new AIStatePatrol(controller);
                stateMachine.MoveTo(patrol);
            }
        }
		protected override void HandleFrameUpdate (float elapsedTime)
		{
			base.HandleFrameUpdate(elapsedTime);
			
			// Check if the player is visible
			if (IsPlayerVisible()) {
				// Start persuit of the player
				var persuit = new AIStatePersuit(controller);
				stateMachine.MoveTo (persuit);
			}
		}
		protected override void HandleFrameUpdate (float elapsedTime)
		{
			base.HandleFrameUpdate(elapsedTime);

			if (IsPlayerVisible()) {
				var persuit = new AIStatePersuit(controller);
				stateMachine.MoveTo(persuit);
				return;
			}

			// Since the player is not visible while we are patrolling, clear the last sighting 
			controller.LastSighting.ClearSighting();

			var agent = controller.Agent;

			if (agent.GetRemainingDistance() < controller.destinationArriveProximity) {
				currentWaypointIndex++;
			}
			MoveToCurrentPoint();
		}
		protected override void HandleFrameUpdate (float elapsedTime)
		{
			base.HandleFrameUpdate(elapsedTime);
	        
			// Check if the player is visible
			if (IsPlayerVisible()) {
				// Start persuit of the player
				var persuit = new AIStatePersuit(controller);
				stateMachine.MoveTo (persuit);
			}

			timeSinceStart += elapsedTime;
			if (timeSinceStart >= controller.searchWaitTime) {
				// The player is not found and is lost. Clear the last sighting variable
				controller.LastSighting.ClearSighting();

				// Return back to the patrol state
				var patrol = new AIStatePatrol(controller);
				stateMachine.MoveTo(patrol);
			}
		}
		protected override void HandleFrameUpdate (float elapsedTime)
		{
			base.HandleFrameUpdate(elapsedTime);

			// Check if we can see the player
			if (IsPlayerVisible()) {
				// The player is visible.  Start persuit of the player
				var persuit = new AIStatePersuit(controller);
				stateMachine.MoveTo(persuit);
	            return;
	        }

			// Check if we are near the last sighting position;
			if (controller.Agent.GetRemainingDistance() < controller.destinationArriveProximity) {
				// We have reached the last sighting position and still haven't found the player
				// Stand here and wait for a bit before returing to patrolling
				var waitAndSearch = new AIStateWaitAndSearch(controller);
				stateMachine.MoveTo(waitAndSearch);
			}
	    }