private void WindowFunction(int id) { GUI.DragWindow(new Rect(0, 0, m_rect.width - 35, 23)); if (GUI.Button(new Rect(m_rect.width - 30, 2, 30, 20), "X")) { ShowMenu = false; return; } GUILayout.BeginArea(new Rect(5, 20, m_rect.width - 10, m_rect.height - 15)); GUILayout.Space(20); if (SelectedEnchant != null) { if (GUILayout.Button("< Back to Enchantments")) { SelectedEnchant = null; } GUILayout.Label("Selected Enchant: <b><color=orange>" + SelectedEnchant.Name + "</color></b>"); } GUILayout.BeginHorizontal(); GUILayout.Label("Selected Slot: " + SelectedSlot.ToString(), GUILayout.Width(m_rect.width - 70)); if (GUILayout.Button("<", GUILayout.Width(25))) { SetEnum(ref SelectedSlot, -1); } if (GUILayout.Button(">", GUILayout.Width(25))) { SetEnum(ref SelectedSlot, 1); } GUILayout.EndHorizontal(); var character = CharacterManager.Instance.GetFirstLocalCharacter(); if (character) { var equipment = (Equipment)character.Inventory.GetEquippedItem(SelectedSlot); if (equipment) { GUILayout.Label("<b>Equipped:</b> <color=orange>" + equipment.Name + "</color>"); if (equipment.IsEnchanted) { GUI.color = Color.red; var enchant = equipment.GetComponentInChildren <Enchantment>(); if (GUILayout.Button("Remove Enchantment (" + enchant.Name + ")")) { enchant.UnapplyEnchantment(); var ids = (List <int>)At.GetValue(typeof(Equipment), equipment, "m_enchantmentIDs"); ids.Clear(); At.Call(typeof(Equipment), equipment, "RefreshEnchantmentModifiers", null, new object[0]); } } else if (SelectedEnchant != null) { GUI.color = Color.green; if (GUILayout.Button("Apply Selected Enchant")) { equipment.AddEnchantment(SelectedEnchant.PresetID, false); } } GUI.color = Color.white; } else { GUI.color = Color.red; GUILayout.Label("No item equipped in " + SelectedSlot.ToString() + " slot!"); } } GUI.color = Color.white; if (SelectedEnchant == null) { GUILayout.Label("Enter an Enchantment ID to search for..."); SearchText = GUILayout.TextField(SearchText); GUILayout.BeginVertical(GUI.skin.box); scroll = GUILayout.BeginScrollView(scroll); var search = SearchText.ToLower(); foreach (var entry in m_cachedEnchantments) { if (search == "" || entry.Key.ToLower().Contains(search)) { if (GUILayout.Button(entry.Key)) { SelectedEnchant = entry.Value; } } } GUILayout.EndScrollView(); GUILayout.EndVertical(); } GUILayout.EndArea(); }