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
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(); |
|
}); |
|
} |
|
} |
|
}
|
|
|