Example #1
0
 void Jump(pNC_StateMachineController controller, float hei)
 {
     Debug.Log("run");
     jumpAngle = jumpAngle.normalized * hei;
     controller.nc_Brain.rb.AddForce(jumpAngle, ForceMode.Impulse);
     hasMoved = true;
 }
Example #2
0
 private void DoActions(pNC_StateMachineController controller)
 {
     for (int i = 0; i < pNC_Actions.Length; i++)
     {
         pNC_Actions[i].Act(controller);
     }
 }
Example #3
0
    public void Initialize()
    {
        navMeshAgent = GetComponent <NavMeshAgent>();
        rb           = GetComponent <Rigidbody>();
        col          = GetComponent <Collider>();

        nc_info = GetComponent <NC_Information>();
        if (Patrol)
        {
            nc_patrol = GetComponent <NC_Patrol>();
            nc_patrol.AssignProperties(navMeshAgent, nc_info);
            nc_patrol.CacheWaypoints();
            nc_patrol.SetupWaypoints(navMeshAgent);
        }
        nc_sensors = GetComponent <NC_Sensors>();

        if (Weaponized)
        {
            nc_weapon        = GetComponent <NC_Weapon>();
            nc_weapon.weapon = nc_weapon.GetComponentInChildren <Weapon>();
        }
        healthClass = GetComponent <HealthClass>();


        controller = GetComponent <pNC_StateMachineController>();
    }
Example #4
0
 public override void Act(pNC_StateMachineController controller)
 {
     if (!hasMoved)
     {
         Jump(controller, jumpForce);
     }
 }
Example #5
0
 public override bool Decide(pNC_StateMachineController controller)
 {
     if (controller.CheckIfCountdownElapsed(timeInSeconds))
     {
         return(true);
     }
     return(false);
 }
Example #6
0
    private void FollowPath(pNC_StateMachineController controller)
    {
        controller.nc_Brain.navMeshAgent.destination = controller.nc_Brain.nc_patrol.waypointList[controller.nc_Brain.nc_patrol.nextWaypoint].position;
        controller.nc_Brain.navMeshAgent.isStopped   = false;

        if (controller.nc_Brain.navMeshAgent.remainingDistance <= controller.nc_Brain.navMeshAgent.stoppingDistance && !controller.nc_Brain.navMeshAgent.pathPending)
        {
            controller.nc_Brain.nc_patrol.nextWaypoint = (controller.nc_Brain.nc_patrol.nextWaypoint + 1) % controller.nc_Brain.nc_patrol.waypointList.Count;
        }
    }
Example #7
0
 public override bool Decide(pNC_StateMachineController controller)
 {
     if (controller.nc_Brain.healthClass.hit)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #8
0
 public override bool Decide(pNC_StateMachineController controller)
 {
     if (controller.nc_Brain.nc_sensors.playerSeen)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #9
0
 private void Attack(pNC_StateMachineController controller)
 {
     if (CheckDistance(controller) && controller.nc_Brain.nc_sensors.fieldOfView.visibleTargets.Contains(controller.nc_Brain.nc_sensors.chaseTarget))
     {
         Debug.Log(CheckDistance(controller));
         if (controller.CheckIfCountdownElapsed(controller.nc_Brain.nc_info.AttackRate))
         {
             Debug.Log("Attacked!");
             controller.nc_Brain.nc_weapon.weapon.Attack();
         }
     }
 }
Example #10
0
 private void Chase(pNC_StateMachineController controller)
 {
     controller.nc_Brain.navMeshAgent.isStopped = false;
     if (controller.nc_Brain.nc_sensors.chaseTarget == null)
     {
         controller.nc_Brain.nc_sensors.chaseTarget = controller.nc_Brain.healthClass.lastHitBy.transform;
     }
     else
     {
         controller.nc_Brain.navMeshAgent.destination = controller.nc_Brain.nc_sensors.chaseTarget.position;
     }
 }
Example #11
0
    private void CheckTransitions(pNC_StateMachineController controller)
    {
        for (int i = 0; i < pNC_Transitions.Length; i++)
        {
            bool decisionSucceeded = pNC_Transitions[i].decision.Decide(controller);

            if (decisionSucceeded)
            {
                controller.TransitionToState(pNC_Transitions[i].trueState);
            }
            else
            {
                controller.TransitionToState(pNC_Transitions[i].falseState);
            }
        }
    }
Example #12
0
 public abstract void Act(pNC_StateMachineController controller);
Example #13
0
 public override void Act(pNC_StateMachineController controller)
 {
     Chase(controller);
 }
Example #14
0
 public override void Act(pNC_StateMachineController controller)
 {
     Attack(controller);
 }
Example #15
0
    bool CheckDistance(pNC_StateMachineController controller)
    {
        float dist = Vector3.Distance(controller.nc_Brain.nc_sensors.chaseTarget.position, controller.transform.position);

        return(dist <= controller.nc_Brain.nc_info.AttackRange);
    }
Example #16
0
 public abstract bool Decide(pNC_StateMachineController controller);
Example #17
0
    bool CheckDistance(pNC_StateMachineController controller)
    {
        Vector3 distance = controller.transform.position - controller.nc_Brain.nc_sensors.chaseTarget.position;

        return(distance.magnitude <= controller.nc_Brain.nc_info.AttackRange);
    }
Example #18
0
 public override bool Decide(pNC_StateMachineController controller)
 {
     return(CheckDistance(controller));
 }
Example #19
0
    public override bool Decide(pNC_StateMachineController controller)
    {
        bool chaseTargetIsActive = controller.nc_Brain.nc_sensors.chaseTarget.gameObject.activeSelf;

        return(chaseTargetIsActive);
    }
Example #20
0
 private void Freeze(pNC_StateMachineController controller)
 {
     controller.nc_Brain.navMeshAgent.isStopped = true;
 }
Example #21
0
 public override void Act(pNC_StateMachineController controller)
 {
     FollowPath(controller);
 }
Example #22
0
 void MoveForward(pNC_StateMachineController controller, float dist)
 {
 }
Example #23
0
 public void UpdateState(pNC_StateMachineController controller)
 {
     DoActions(controller);
     CheckTransitions(controller);
 }