private void DoActions(StateControllerRed controller) { for (int i = 0; i < actions.Length; i++) { actions[i].Act(controller); } }
private void Dead(StateControllerRed controller) { controller.m_Anim.SetBool("Idle", false); controller.m_Anim.SetBool("Move", false); controller.m_Anim.SetBool("HitHead", false); controller.m_Anim.SetBool("AttackL", false); controller.m_Anim.SetBool("AttackR", false); controller.m_Anim.SetBool("Dead", true); }
private bool Attack(StateControllerRed controller) { if (controller.redDirection.magnitude <= 0.8f) { return(true); } else { return(false); } }
private bool Chase(StateControllerRed controller) { if (controller.chase == true) { return(true); } else { return(false); } }
private bool Dead(StateControllerRed controller) { if (controller.m_Health.value <= 0.0f) { return(true); } else { return(false); } }
private bool Stop(StateControllerRed controller) { if (controller.redDirection.magnitude <= 1.0f) { return(true); } else { return(false); } }
private void CheckTransitions(StateControllerRed controller) { for (int i = 0; i < transitions.Length; i++) { bool decisionSucceeded = transitions[i].decision.Decide(controller); if (decisionSucceeded) { controller.TransitionToState(transitions[i].trueState); } else { controller.TransitionToState(transitions[i].falseState); } } }
private void Attack(StateControllerRed controller) { if (controller.m_Health.value <= 0.0f) { return; } //Rotate controller.m_Red.transform.rotation = Quaternion.Slerp(controller.m_Red.transform.rotation, Quaternion.LookRotation(controller.redDirection), controller.redStats.rotateSpeed); Debug.Log("Red AttackL"); controller.m_Anim.SetBool("Idle", false); controller.m_Anim.SetBool("Move", false); controller.m_Anim.SetBool("AttackL", true); }
private bool Look(StateControllerRed controller) { RaycastHit hit; Debug.DrawRay(controller.eyesRed.position, controller.eyesRed.forward.normalized * controller.redStats.lookRange, Color.red); if (Physics.SphereCast(controller.eyesRed.position, controller.redStats.lookSphereCastRadius, controller.eyesRed.forward, out hit, controller.redStats.lookRange) && hit.collider.CompareTag("Blue")) { controller.chaseTarget = hit.transform; return(true); } else { return(false); } }
private void Damage(StateControllerRed controller) { if (controller.hit == true) { Debug.Log("Damage"); controller.m_Anim.SetBool("Idle", false); controller.m_Anim.SetBool("Move", false); controller.m_Anim.SetBool("AttackL", false); controller.m_Anim.SetBool("AttackR", false); controller.m_Anim.SetBool("Defend", false); controller.m_Anim.SetBool("HitBody", false); controller.m_Anim.SetBool("HitHead", true); controller.m_Anim.SetBool("HitBody", false); controller.hit = false; } }
private void Chase(StateControllerRed controller) { if (controller.m_Health.value <= 0.0f) { return; } if (controller.chase == true) { Debug.Log("Red Chase"); controller.m_Anim.SetBool("Idle", false); controller.m_Anim.SetBool("Move", true); //controller.m_Anim.SetBool("AttackL", false); //Rotate controller.m_Red.transform.rotation = Quaternion.Slerp(controller.m_Red.transform.rotation, Quaternion.LookRotation(controller.redDirection), controller.redStats.rotateSpeed); //Move controller.m_Red.transform.position = Vector3.Lerp(controller.m_Red.transform.position, controller.chaseTarget.position, controller.redStats.moveSpeed * Time.deltaTime); } }
public override void Act(StateControllerRed controller) { Dead(controller); }
public override void Act(StateControllerRed controller) { Attack(controller); }
public override bool Decide(StateControllerRed controller) { bool targetFound = Chase(controller); return(targetFound); }
public override System.Boolean Decide(StateControllerRed controller) { bool chaseTargetIsActive = controller.chaseTarget.gameObject.activeSelf; return(chaseTargetIsActive); }
public override void Act(StateControllerRed controller) { Chase(controller); }
public override bool Decide(StateControllerRed controller) { bool targetNear = Stop(controller); return(targetNear); }
public void UpdateState(StateControllerRed controller) { DoActions(controller); CheckTransitions(controller); }
public abstract void Act(StateControllerRed controller);
public override bool Decide(StateControllerRed controller) { bool dead = Dead(controller); return(dead); }
public override void Act(StateControllerRed controller) { Damage(controller); }
public override bool Decide(StateControllerRed controller) { bool targetVisible = Attack(controller); return(targetVisible); }
public abstract bool Decide(StateControllerRed controller);