using BrewMonster.Network; using BrewMonster.Scripts.Managers; using BrewMonster.Scripts.Task; using BrewMonster.UI; using CSNetwork; using ModelRenderer.Scripts.Common; using PerfectWorld.Scripts.Managers; using PerfectWorld.Scripts.Task; using System; using System.Collections.Generic; using System.Text; using BrewMonster.Scripts; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; namespace BrewMonster { public class DlgInstall : AUIDialog { [Header("Slot First")] [SerializeField] private Transform m_SlotFirstParent; [SerializeField] private TextMeshProUGUI m_TxtFirstName; [Header("Slot Second")] [SerializeField] private Transform m_SlotSecondlParent; [SerializeField] private TextMeshProUGUI m_TxtSecondName; [Header("Buttons and Money")] [SerializeField] private TextMeshProUGUI m_TxtMoney; [SerializeField] private Button m_BtnMerge; [SerializeField] private Button m_BtnCancel; [SerializeField] private Sprite khung_item; private EC_IvtrItem m_SelectedEquip; private EC_IvtrItem m_SelectedMaterial; private int m_FirstInvSlot = -1; private int m_SecondInvSlot = -1; private int m_install_price = -1; public override void Awake() { base.Awake(); RegisterDrop(m_SlotFirstParent, OnDropEquip); RegisterDrop(m_SlotSecondlParent, OnDropMaterial); RegisterClick(m_SlotFirstParent, OnClickEquipSlot); RegisterClick(m_SlotSecondlParent, OnClickMaterialSlot); } public override void OnEnable() { base.OnEnable(); //todo need to set from other class // SetName("Win_Enchase"); m_BtnMerge.onClick.AddListener(OnClickedMerge); m_install_price = -1; } public override void OnDisable() { base.OnDisable(); m_BtnMerge.onClick.RemoveListener(OnClickedMerge); } public void OpenInstall(uint npcId) { } public void CloseInstall() { gameObject.SetActive(false); RestoreInventoryColors(); } private void RestoreInventoryColors() { var canvas = FindFirstObjectByType(); if (canvas == null) return; if (m_FirstInvSlot >= 0) { var btn = FindInventoryButtonBySlot(m_FirstInvSlot); SetInventorySlotGray(btn, false); m_FirstInvSlot = -1; } if (m_SecondInvSlot >= 0) { var btn = FindInventoryButtonBySlot(m_SecondInvSlot); SetInventorySlotGray(btn, false); m_SecondInvSlot = -1; } } private Button FindInventoryButtonBySlot(int slot) { var inventoryUI = FindFirstObjectByType(); if (inventoryUI == null) return null; var field = typeof(EC_InventoryUI) .GetField("inventoryPackButtons", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); if (field == null) return null; var list = field.GetValue(inventoryUI) as List