using Dialogs; using JetBrains.Annotations; using Shop; using UnityEngine; using UnityEngine.UI; namespace Equip { public class EquipContainer : MonoBehaviour { [SerializeField] private Image[] _icons; [SerializeField] private Image[] _rarities; [SerializeField] private EquipType _type; [SerializeField] private Image _equiped; [SerializeField] private Image _equipedBack; private int _equipIndex; private void OnEnable() { ShopItem.EquipBuy += OnEquipBuy; Repaint(); } private void OnDisable() { ShopItem.EquipBuy -= OnEquipBuy; } private void OnEquipBuy() { Repaint(); } private void Repaint() { var items = EquipSettings.GetItemsByType(_type); for (int i = 0; i < items.Count; i++) { _icons[i].color = EquipSettings.ItemUnlocked(i, _type) ? Color.white : Color.gray; _icons[i].sprite = Resources.Load(string.Format("Equipment/{0}", items[i].Icon)); _rarities[i].color = EquipSettings.ItemUnlocked(i, _type) ? Color.white : Color.gray; _rarities[i].sprite = Resources.Load(string.Format("Equipment/OBJ_arsenal_{0}", items[i].Rarity)); } _equipIndex = EquipSettings.EquipedItems[(int) _type]; _equiped.sprite = Resources.Load(string.Format("Equipment/{0}", items[_equipIndex].Icon)); _equipedBack.sprite = Resources.Load(string.Format("Equipment/OBJ_arsenal_{0}", items[_equipIndex].Rarity)); } [UsedImplicitly] public void ChangeItem(int index) { if (!EquipSettings.ItemUnlocked(index, _type)) return; var items = EquipSettings.GetItemsByType(_type); GameObject dlg = GlobalsVar.gBoard.StartDialog("WeaponDialog"); var wDlg = dlg.GetComponentInChildren(); wDlg.Init(items[index], _type.ToString(), _equipIndex == index, () => { EquipSettings.EquipedItems[(int) _type] = index; GlobalsVar.gUser.SaveEquipedItems(); _equiped.sprite = Resources.Load(string.Format("Equipment/{0}", items[index].Icon)); _equipedBack.sprite = Resources.Load(string.Format("Equipment/OBJ_arsenal_{0}", items[index].Rarity)); _equipIndex = index; var menu = (MainMenu) GlobalsVar.gBoard; if (menu != null) menu.RepaintChar(); wDlg.HideDialog(); }); } } }