public Orb MakeGhostOrb(Orb primaryOrb, Orb[] otherOrbs) { StoryManager storyManager = FindObjectOfType <StoryManager>(); if (storyManager.storyBeat == StoryManager.Beat.FREE_PLAY_2) { storyManager.GotoBeat(StoryManager.Beat.INTERLUDE_2_PABS_EMERGE, 2f); } Orb ghostOrb = this.inactiveGhostOrbs.Pop(); ghostOrb.AddChildOrb(primaryOrb); for (int i = 0; i < otherOrbs.Length; i++) { ghostOrb.AddChildOrb(otherOrbs[i]); } primaryOrb.item.state = Item.State.TRANSFORMED; for (int i = 0; i < otherOrbs.Length; i++) { otherOrbs[i].item.state = Item.State.TRANSFORMED; } ghostOrb.item.transform.position = primaryOrb.transform.position; ghostOrb.item.initialPosition = ghostOrb.item.transform.position; return(ghostOrb); }