private void die() { owner.GameOver(owner); onHit(AttackType.None, this); target = null; getRigidBody2D().velocity = Vector2.zero; Destroy(GetComponent <Collider2D>()); healthBar.setDead(); RandomCatNoises n = transform.GetChild(0).GetComponent <RandomCatNoises>(); n.playMeow(); n.enableNoises = false; if (owner.enemy) { EventTrigger ET = GetComponent <EventTrigger>(); if (ET != null) { Destroy(ET); } gameObject.layer = owner.getLayer(false); } else { Action.interactable = false; } if (getAnimator().GetBool("fly")) { Vector3 startPos = transform.position; Vector3 endPos = owner.getLosePos(this); Vector3 bending = Vector3.left; LeanTween.value(gameObject, 0, 1, 2.1f).setDelay(0.5f).setOnUpdate((float val) => { Vector3 currentPos = Vector3.Lerp(startPos, endPos, val); currentPos.x += bending.x * Mathf.Sin(val * Mathf.PI); currentPos.y += bending.y * Mathf.Sin(val * Mathf.PI); transform.position = currentPos; setPositionZ(currentPos); }).setOnComplete(() => getAnimator().SetBool("fly", false)); flying = false; } else { StartCoroutine(moveToOrig()); } }