public void LockAffixOnClick()
    {
        if (currentItem == null)
        {
            return;
        }
        PopUpWindow popUpWindow = UIManager.Instance.PopUpWindow;

        popUpWindow.OpenVerticalWindow();

        popUpWindow.SetButtonValues("Confirm", delegate { LockAffixConfirm(); }, "Cancel", delegate { UIManager.Instance.CloseCurrentWindow(); });

        TextMeshProUGUI textSlot = Instantiate(UIManager.Instance.textPrefab);

        popUpWindow.AddObjectToViewport(textSlot.gameObject);
        previousLockCount = 0;
        selectedAffixesToLock.Clear();
        foreach (Affix affix in currentItem.prefixes.Concat(currentItem.suffixes))
        {
            Button button = Instantiate(UIManager.Instance.buttonPrefab);
            button.GetComponentInChildren <TextMeshProUGUI>().fontSize = 18;
            button.GetComponentInChildren <TextMeshProUGUI>().text     = Affix.BuildAffixString(affix.Base, 0, null, affix.GetAffixValues(), affix.GetEffectValues());
            button.onClick.AddListener(delegate { LockAffixCallback(affix, textSlot, button); });
            popUpWindow.AddObjectToViewport(button.gameObject);

            if (affix.IsLocked)
            {
                previousLockCount++;
                selectedAffixesToLock.Add(affix);
                button.image.color = Helpers.SELECTION_COLOR;
            }
            else
            {
                button.image.color = new Color(0.8f, 0.8f, 0.8f);
            }
        }

        textSlot.text = "Current Cost: 0 <sprite=10>";
    }