using System; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; namespace MoleMole { public class MonoSkillButton : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IEventSystemHandler { public enum PointerState { PointerUp = 0, PointerDown = 1 } private const string YELLOW_BG_PATH = "SpriteOutput/AvatarInLevelBtnIcons/BtnUniqueSkill2"; private const string BLUE_BG_PATH = "SpriteOutput/AvatarInLevelBtnIcons/BtnSkill"; private const string MATERIAL_COLORIZE_BLUE_PATH = "Material/ImageColorizeSkillIconBlue"; private const string MATERIAL_COLORIZE_YELLOW_PATH = "Material/ImageColorizeSkillIconYellow"; public string SkillName; public string KeyButtonCode; public bool _isPointerHold; private bool _buttonHoldBegin; private BaseAvatarInputController _controller; private BaseMonoAvatar _avatar; private AvatarActor _avatarActor; private AvatarActor.SKillInfo _skillInfo; public Func onPointerStateChange; private Image _image; private Button _button; private Image _maskImg; private float _holdTime; private float _totalHoldTime; private static float HOLD_TIME_THRESHOLD = 0.2f; private bool _buttonClickTrigger; private bool _muteButtonHighLight; private string _maskImagePath; private MonoSkillButtonChargeCount _chargeCount; private bool _hasPlayedUltraReadySound; private void Awake() { _image = base.transform.Find("Image").GetComponent(); _maskImg = base.transform.Find("ImageMask").GetComponent(); _button = base.gameObject.GetComponent