You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

78 lines
2.2 KiB

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<Sprite>(string.Format("Equipment/{0}", items[i].Icon));
_rarities[i].color = EquipSettings.ItemUnlocked(i, _type) ? Color.white : Color.gray;
_rarities[i].sprite = Resources.Load<Sprite>(string.Format("Equipment/OBJ_arsenal_{0}", items[i].Rarity));
}
_equipIndex = EquipSettings.EquipedItems[(int) _type];
_equiped.sprite = Resources.Load<Sprite>(string.Format("Equipment/{0}", items[_equipIndex].Icon));
_equipedBack.sprite = Resources.Load<Sprite>(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<WeaponDialog>();
wDlg.Init(items[index], _type.ToString(), _equipIndex == index, () =>
{
EquipSettings.EquipedItems[(int) _type] = index;
GlobalsVar.gUser.SaveEquipedItems();
_equiped.sprite = Resources.Load<Sprite>(string.Format("Equipment/{0}", items[index].Icon));
_equipedBack.sprite = Resources.Load<Sprite>(string.Format("Equipment/OBJ_arsenal_{0}", items[index].Rarity));
_equipIndex = index;
var menu = (MainMenu) GlobalsVar.gBoard;
if (menu != null)
menu.RepaintChar();
wDlg.HideDialog();
});
}
}
}