Attunement SwapToElement(Element newElement) { print("Swap to " + newElement); if (GetAttunementFromElement(newElement).IsAvailable) { if (currentAttunement != null) // check if currentAttunement was assigned before { currentAttunement.OnSwapOut(); // trying to call its OnSwapOut() } Attunement a = GetAttunementFromElement(newElement); render.color = a.color; a.OnSwapIn(); return(a); } else { print(newElement + " not charged"); return(currentAttunement); } }