void CheckAttack(MuscleliniAttacks currentAttack) { switch (currentAttack) { case MuscleliniAttacks.PunchAttack: if (punching) { if (!punchingCoroutineRunning) { StartCoroutine(Punching()); } } else { anim.SetBool("Run", true); GetComponent <PolyNavAgent>().SetDestination(player.transform.position); } break; case MuscleliniAttacks.JumpAttack: GetComponent <PolyNavAgent>().Stop(); if (!jumpingCoroutineRunning) { StartCoroutine(Jumping()); } break; } }
void Update() { if (!isDead) { if (!jumpingCoroutineRunning) { Flip(player.transform, spRenderer); } if (!jumpingCoroutineRunning) { timeToAttack += Time.deltaTime; } if (timeToAttack >= 10) { timeToAttack = 0; currentAttack = MuscleliniAttacks.JumpAttack; } CheckAttack(currentAttack); if (health <= 10) { spRenderer.color = new Color(255f, 0f, 0f); GetComponent <PolyNavAgent>().maxSpeed = 20; } } }
void Start() { anim = GetComponent <Animator>(); spRenderer = GetComponent <SpriteRenderer>(); player = GameObject.FindGameObjectWithTag("Player"); currentAttack = MuscleliniAttacks.PunchAttack; punching = false; punchingCoroutineRunning = false; jumpingCoroutineRunning = false; isDead = false; }
public IEnumerator Falling(Vector3 positionToFall) { transform.position = positionToFall; yield return(new WaitForSecondsRealtime(1f)); spRenderer.enabled = true; anim.SetBool("Fall", true); Destroy(inGameShadow); CameraShake(1f, 2f); if (playerInsideArea) { player.GetComponent <PlayerBehaviour>().Damaged(gameObject); } boxCollider.enabled = true; yield return(new WaitForSecondsRealtime(1f)); anim.SetBool("Fall", false); currentAttack = MuscleliniAttacks.PunchAttack; jumpingCoroutineRunning = false; }