public void Interact(out bool usedUp) { if (isFixed) { InGameUI.ShowWinScreen(); usedUp = false; return; } foreach (var damage in damages) { if (damage.TryGetRepaired()) { break; } } var anyNotFixed = false; foreach (var damage in damages) { if (!damage.Fixed) { anyNotFixed = true; } } if (!anyNotFixed) { sr.sprite = fixedSprite; isFixed = true; foreach (var childSR in gameObject.GetComponentsInChildren <SpriteRenderer>()) { if (childSR != sr) { childSR.enabled = false; } } } usedUp = false; }