void OnTriggerEnter(Collider other) { FPP = other.gameObject.GetComponent <CharacterController>(); TeleportCooldown teleportCooldown = other.gameObject.GetComponent <TeleportCooldown>(); if (teleportCooldown.OnCooldown() == false) { StartCoroutine(TeleportSequence(teleportCooldown)); } }
public void FBHurt() { Health--; if (Health == 0 && Animation.CurrentAnimation != "Death") { Animation.Play("Death"); FireballTimer.Stop(); AttackCooldown.Stop(); TeleportCooldown.Stop(); TeleportMove.Stop(); } }
public void Hurt(int h, Knight player) { Health -= h; if (Health == 0 && Animation.CurrentAnimation != "Death") { Animation.Play("Death"); FireballTimer.Stop(); AttackCooldown.Stop(); TeleportCooldown.Stop(); TeleportMove.Stop(); } }
IEnumerator TeleportSequence(TeleportCooldown teleportCooldown) { portal1 = GameObject.FindGameObjectWithTag("Portal1").GetComponent <Transform>(); portal2 = GameObject.FindGameObjectWithTag("Portal2").GetComponent <Transform>(); teleportCooldown.changeCooldown(); FPP.enabled = false; FPP.transform.position = new Vector3(portal1.position.x, portal1.position.y, portal1.position.z); teleport.Play(); if (portal1.eulerAngles.y == portal2.eulerAngles.y) { FPP.transform.Rotate(0, 180, 0); } FPP.enabled = true; yield return(new WaitForSeconds(0.5f)); teleportCooldown.changeCooldown(); }
public override void _Process(float delta) { if (Health <= 0) { return; } var bs = Area.GetOverlappingBodies(); var a = new Node2D[bs.Count]; bs.CopyTo(a, 0); a = a.Where(b => b is Knight).ToArray(); if (TeleportCooldown.TimeLeft == 0) { if (a.Any()) { TeleportMove.Start(1f); TeleportCooldown.Start(4f); Animation.Play("Teleport"); AttackCooldown.Start(1.6f); } else if (GlobalPosition != Start) { TeleportMove.Start(1f); TeleportCooldown.Start(4f); Animation.Play("Teleport"); AttackCooldown.Start(1.6f); } } else { if (AttackCooldown.TimeLeft == 0) { TeleportCooldown.Start(3f); AttackCooldown.Start(3f); Animation.Play("Attack"); FireballTimer.Start(1f); } } }