using System; using UnityEngine; using UnityEngine.UI; namespace MoleMole { public class MonoHelperFrameRow : MonoBehaviour { private FriendBriefDataItem _friendData; private bool _isFrozen; private DateTime _nextAvaliableTime; private Action _onFrameClick; private Action _onIconClick; public void SetupView(FriendBriefDataItem friendData, bool selected, Action onFrameClick = null, Action onIconClick = null) { _friendData = friendData; bool flag = Singleton.Instance.IsMyFriend(_friendData.uid); _isFrozen = Singleton.Instance.isHelperFrozen(friendData.uid); if (_isFrozen) { _nextAvaliableTime = Singleton.Instance.GetHelperNextAvaliableTime(friendData.uid); } base.transform.Find("BG/Select").gameObject.SetActive(selected); base.transform.Find("BG/Normal").gameObject.SetActive(!selected && !_isFrozen); base.transform.Find("Grey").gameObject.SetActive(_isFrozen); base.transform.Find("PlayerName").GetComponent().text = friendData.nickName; base.transform.Find("FriendMark/Friend").gameObject.SetActive(flag); base.transform.Find("FriendMark/Strange").gameObject.SetActive(!flag); base.transform.Find("AvatarStar").GetComponent().SetupView(friendData.avatarStar); base.transform.Find("Lv").GetComponent().text = "LV." + friendData.level; base.transform.Find("SelectMark").gameObject.SetActive(selected); base.transform.Find("PlayerIcon").GetComponent().sprite = Miscs.GetSpriteByPrefab(_friendData.AvatarIconPath); int addFP = GetAddFP(flag); base.transform.Find("FriendPoint/Value").GetComponent().text = addFP.ToString(); base.transform.Find("Btns/FrameBtn").gameObject.SetActive(!_isFrozen); base.transform.Find("FriendPoint").gameObject.SetActive(!_isFrozen); base.transform.Find("RemainTimer").gameObject.SetActive(_isFrozen); if (_isFrozen) { base.transform.Find("RemainTimer/Time").GetComponent().SetTargetTime(_nextAvaliableTime, null, OnFrozenTimeOutCallBack); } _onFrameClick = onFrameClick; _onIconClick = onIconClick; } public void OnFrameClick() { if (_onFrameClick != null) { _onFrameClick(_friendData); } } public void OnIconClick() { if (_onIconClick != null) { _onIconClick(_friendData); } } public int GetAddFP(bool isFriend) { return (!isFriend) ? MiscData.Config.BasicConfig.StrangeAddFriendPoint : MiscData.Config.BasicConfig.FriendAddFriendPoint; } private void OnFrozenTimeOutCallBack() { _isFrozen = false; base.transform.Find("BG/Select").gameObject.SetActive(false); base.transform.Find("BG/Normal").gameObject.SetActive(true); base.transform.Find("Grey").gameObject.SetActive(false); base.transform.Find("Btns/FrameBtn").gameObject.SetActive(!_isFrozen); base.transform.Find("FriendPoint").gameObject.SetActive(!_isFrozen); base.transform.Find("RemainTimer").gameObject.SetActive(_isFrozen); } } }