using System; using Equip; using JetBrains.Annotations; using TMPro; using UnityEngine; using UnityEngine.UI; namespace Dialogs { public class WeaponDialog : BaseDialog { [SerializeField] private TextMeshProUGUI _title; [SerializeField] private TextMeshProUGUI _type; [SerializeField] private Image _icon; [SerializeField] private Button _equipButton; [SerializeField] private WeaponStatItem _item; [SerializeField] private RectTransform _itemContainer; private Action _callback; void Start () { m_type = DialogType.WEAPON_DIALOG; } public void Init(EquipItem item, string itemType, bool equipped, Action callback) { _title.text = item.Name; _type.text = string.Format("{0} - {1}", itemType, GetRarity(item.Rarity)); _icon.sprite = Resources.Load(string.Format("Equipment/{0}", item.Icon)); AddStat("DMG +{0}", item.AddDamage); AddStat("HP +{0}", item.AddHp); AddStat("CRIT +{0}", item.AddCrit); _equipButton.gameObject.SetActive(!equipped); _callback = callback; } private void AddStat(string format, float stat) { var item = Instantiate(_item, _itemContainer); item.SetText(string.Format(format, stat)); } private string GetRarity(string itemRarity) { switch (itemRarity) { case "blue": return "Rare"; case "violet": return "Epic"; default: return "Normal"; } } [UsedImplicitly] public void Callback() { if (_callback != null) _callback(); } } }