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>"; }