public void embodyEnemy() { if (embodying == null) { return; } Enemy enemyScript = embodying.GetComponent <Enemy>(); possessor.enabled = false; Form form = enemyScript.GetForm(); embodying.SetActive(false); returnQueue.GetComponent <ReturnQueueManager>().AddToQueue(form, embodying.GetComponent <Enemy>().spawn); // Last check to see if player has died if (GameManager.S.gameState != GameManager.GameState.playing) { return; } changeValues(embodying.GetComponent <CapsuleCollider2D>().size, embodying.GetComponent <CapsuleCollider2D>().offset, form); // Pass enemy variables to the player if (form == Form.archer) { rb.velocity = new Vector2(0, 0); rb.constraints |= RigidbodyConstraints2D.FreezePositionX | RigidbodyConstraints2D.FreezePositionY; Archer archerScript = embodying.GetComponent <Archer>(); arrowPrefab = archerScript.GetArrowObject(); shotSpeed = archerScript.shotSpeed; UIManager.S.ShowAimingCursor(); } Vector3 newPos = embodying.transform.position; transform.position = newPos; StartCoroutine(embodyCooldownCount()); Destroy(embodying); embodying = null; animator.SetBool("embody", false); particles.Stop(); }