private void InteractWithObject(Interactable interactable) { // Pick up holdable objects if (interactable.InteractionType == "pickup") { HoldableObject holdable = interactable.GetComponentInParent <HoldableObject>(); if (holdable != null) { if (GameStateManager.Instance.BottlesPickedUpCount == 0) { GameUI.Instance.DialogUI.ShowDialog("Hmm... I wonder if I could use this on a monster?", 5, this.transform, Vector3.up * 3); } GameStateManager.Instance.BottlesPickedUpCount++; _objectHolder.HoldObject(holdable); return; } } else if (interactable.InteractionType == "mix") { // Mix bottles if (_objectHolder.IsHoldingObject) { ScreamContainer heldBottle = _objectHolder.HeldObject.GetComponent <ScreamContainer>(); ScreamContainer groundBottle = interactable.GetComponentInParent <ScreamContainer>(); if (heldBottle != null && groundBottle != null) { StartMixingBottles(heldBottle, groundBottle); } } } else if (interactable.InteractionType == "deposit") { // Deposit bottles into bank if (_objectHolder.IsHoldingObject) { ScreamContainer heldBottle = _objectHolder.HeldObject.GetComponent <ScreamContainer>(); GameStateManager.Instance.ScreamBank.DepositScream(heldBottle.ScreamSounds); ReleaseBottleScream(); } } }