void GoToAfterlife(int dir) { GameObject g = dir == 1 ? heaven : hell; List <Transform> spawns = new List <Transform>(g.GetComponentsInChildren <Transform>()); spawns.Remove(g.transform); spawns.Remove(hellMidpoint); foreach (GameObject go in NPCs) { go.GetComponent <Rigidbody2D>().gravityScale = 0; go.GetComponent <Rigidbody2D>().velocity = Vector2.zero; go.GetComponent <Spin>().enabled = true; Transform t = spawns[Random.Range(0, spawns.Count)]; go.transform.position = t.position; spawns.Remove(t); } player.GetComponent <BoxCollider2D>().enabled = false; player.GetComponent <TeleportIfBelowWorld>().enabled = false; player.GetComponent <Interaction>().SetPlayerMovementEnabled(false); player.GetComponent <Rigidbody2D>().gravityScale = 0; player.GetComponent <Rigidbody2D>().velocity = Vector2.zero; player.GetComponent <Spin>().enabled = true; StartCoroutine(PlayerFlyToo(spawns[Random.Range(0, spawns.Count)].position)); StartCoroutine(LerpCam(dir == 1 ? heavenMidpoint : hellMidpoint)); }