public override void Interact() { if (Interactible) { if (PlayerInventory.GetIngredientAmount(desiredObject) > 0) { PlayerInventory.RemoveInventoryItem(desiredObject, 1); foreach (GameObject go in objectsToDeactivate) { go.SetActive(false); } foreach (GameObject go in objectsToActivate) { go.SetActive(true); } silhouetteSeen.SetActive(false); silhouetteInteractible.SetActive(false); hasItem = true; interactible = false; } else { StopAllCoroutines(); MessageMenu messageMenu = UIManager.Open <MessageMenu>(); messageMenu.SetText(string.Format(NEGATIVE_STRING, desiredObject.displayName), 1); StartCoroutine(CloseMessage()); } } }