using System; using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay; using UnityEngine; using UnityEngine.UI; namespace BrewMonster { public enum SkillSlotType { Normal= 0, AddSkill } public class SkillSlotWidget : AUIImagePictureBase { [SerializeField] private SkillSlotType _skillSlotType; [SerializeField] private Image _backgroundImage; [SerializeField] private Button _button; [SerializeField] private Sprite[] _slotBackgrounds; [SerializeField] private GameObject _focusFrame; private int _skillId; public int SkillId => _skillId; public event Action OnClickedSkillSlot; private void OnValidate() { var index = (int)_skillSlotType; if (index < 0 || index >= _slotBackgrounds.Length) { BMLogger.LogError("Invalid skill slot type"); } else { if(_backgroundImage == null) return; _backgroundImage.sprite = _slotBackgrounds[index]; } } private void OnEnable() { _button.onClick.AddListener(OnClickedButton); } private void OnDisable() { _button.onClick.RemoveListener(OnClickedButton); } private void OnClickedButton() { OnClickedSkillSlot?.Invoke(this); } public void SetSkillId(int skillId) { _skillId = skillId; } public void SetFocusFrame(bool isFocus) { _focusFrame.SetActive(isFocus); } } }