void Jump(pNC_StateMachineController controller, float hei) { Debug.Log("run"); jumpAngle = jumpAngle.normalized * hei; controller.nc_Brain.rb.AddForce(jumpAngle, ForceMode.Impulse); hasMoved = true; }
private void DoActions(pNC_StateMachineController controller) { for (int i = 0; i < pNC_Actions.Length; i++) { pNC_Actions[i].Act(controller); } }
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>(); }
public override void Act(pNC_StateMachineController controller) { if (!hasMoved) { Jump(controller, jumpForce); } }
public override bool Decide(pNC_StateMachineController controller) { if (controller.CheckIfCountdownElapsed(timeInSeconds)) { return(true); } return(false); }
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; } }
public override bool Decide(pNC_StateMachineController controller) { if (controller.nc_Brain.healthClass.hit) { return(true); } else { return(false); } }
public override bool Decide(pNC_StateMachineController controller) { if (controller.nc_Brain.nc_sensors.playerSeen) { return(true); } else { return(false); } }
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(); } } }
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; } }
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); } } }
public abstract void Act(pNC_StateMachineController controller);
public override void Act(pNC_StateMachineController controller) { Chase(controller); }
public override void Act(pNC_StateMachineController controller) { Attack(controller); }
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); }
public abstract bool Decide(pNC_StateMachineController controller);
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); }
public override bool Decide(pNC_StateMachineController controller) { return(CheckDistance(controller)); }
public override bool Decide(pNC_StateMachineController controller) { bool chaseTargetIsActive = controller.nc_Brain.nc_sensors.chaseTarget.gameObject.activeSelf; return(chaseTargetIsActive); }
private void Freeze(pNC_StateMachineController controller) { controller.nc_Brain.navMeshAgent.isStopped = true; }
public override void Act(pNC_StateMachineController controller) { FollowPath(controller); }
void MoveForward(pNC_StateMachineController controller, float dist) { }
public void UpdateState(pNC_StateMachineController controller) { DoActions(controller); CheckTransitions(controller); }