public virtual void OnMouseDown()
    {
        int currentCost = LevelData.getCurrentMana();

        // show formula if mana is enough or potion has been studied before
        if ((currentCost - (costOfInspectionPerFormula * inputs.Count) >= 0) || LevelData.isPotionInspected(this.gameObject.name))
        {
            HideAndShowInputsOutputs(true);
            if (!LevelData.isPotionInspected(this.gameObject.name))
            {
                LevelData.addCost(costOfInspectionPerFormula * inputs.Count * -1);
                LevelData.addInspectedPotion(this.gameObject.name);
            }

            if (!JournalData.isPotionInspected(this.gameObject.name))
            {
                JournalData.addInspectedPotion(this.gameObject.name);
            }

            // display formula in dialogue
            //UpdateDialogue (); // -- do not display formula in dialogue anymore - 7/09/2018

            UpdateFormula();
        }
        else if (currentCost - (costOfInspectionPerFormula * inputs.Count) < 0)
        {
            Debug.Log("show diag");
            dialogue.SetActive(true);

            // disable buttons behind the dialogue
            DisableButtons();
        }
    }