using System; 
 | 
using System.Collections.Generic; 
 | 
using UnityEngine; 
 | 
using UnityEngine.UI; 
 | 
using vnxbqy.UI; 
 | 
  
 | 
  
 | 
public class AddFriendTips : MonoBehaviour 
 | 
{ 
 | 
    private ScrollerController _addfriendCtrl; 
 | 
    private ToggleGroup _addfriendGroup; 
 | 
    private Text _titleText; 
 | 
    private Button _refreshBtn; // 换一批 
 | 
    private Image _refreshImage; 
 | 
    private Text _refreshText; 
 | 
    private InputField _inputPlayerName; 
 | 
    private Button _lookBtn; 
 | 
  
 | 
    private GameObject _searchGo; 
 | 
    private GameObject _searchBG; 
 | 
  
 | 
    private bool _isRecommend = true; 
 | 
    public bool IsRecommend { 
 | 
        get { return _isRecommend; } 
 | 
        set { _isRecommend = value; } 
 | 
    } 
 | 
    private string _strSearch = ""; 
 | 
  
 | 
    FriendsModel _friendsModel; 
 | 
    FriendsModel friendsModel { 
 | 
        get { 
 | 
            return _friendsModel ?? (_friendsModel = ModelCenter.Instance.GetModel<FriendsModel>()); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    [SerializeField] 
 | 
    [Header("不存在境界时的位置")] 
 | 
    Vector3 noExistRealmPos = new Vector3(-15, 15, 0); 
 | 
  
 | 
    [SerializeField] 
 | 
    [Header("存在境界时的位置")] 
 | 
    Vector3 existRealmPos = new Vector3(58, 15, 0); 
 | 
  
 | 
    Color32 brightColor = new Color32(51, 8, 0, 255); 
 | 
    Color32 greyColor = new Color32(247, 247, 247, 255); 
 | 
  
 | 
    private void Awake() 
 | 
    { 
 | 
        _addfriendCtrl = transform.Find("AddFriendCtrl").GetComponent<ScrollerController>(); 
 | 
        _addfriendCtrl.OnRefreshCell += OnRefreshAddFriendCell; 
 | 
  
 | 
        _addfriendGroup = transform.Find("AddFriendCtrl").GetComponent<ToggleGroup>(); 
 | 
        _titleText = transform.Find("SearchTitle/Text").GetComponent<Text>(); 
 | 
        _refreshBtn = transform.Find("RefreshBtn").GetComponent<Button>(); 
 | 
        _refreshImage = transform.Find("RefreshBtn").GetComponent<Image>(); 
 | 
        _refreshText = transform.Find("RefreshBtn/Text").GetComponent<Text>(); 
 | 
        _inputPlayerName = transform.Find("InputPlayerName/InputField").GetComponent<InputField>(); 
 | 
        _lookBtn = transform.Find("InputPlayerName/LookBtn").GetComponent<Button>(); 
 | 
        _searchBG = transform.Find("BG").gameObject; 
 | 
        _searchGo = transform.Find("SearchTitle").gameObject; 
 | 
  
 | 
        _refreshBtn.onClick.AddListener(() => { OnClickRefreshBtn(); }); 
 | 
        _lookBtn.onClick.AddListener(() => { OnClickLookBtn(); }); 
 | 
        _inputPlayerName.onValueChanged.AddListener((string inputStr) => { OnEndInput(inputStr); }); 
 | 
  
 | 
        ChatCtrl.Inst.OnClickCloseChatEvent += CloseFriendlist; 
 | 
    } 
 | 
  
 | 
    private void CloseFriendlist() 
 | 
    { 
 | 
        FriendListUICtrl(false); 
 | 
    } 
 | 
  
 | 
    public void OnInit() 
 | 
    { 
 | 
        _addfriendCtrl.vertical = true; 
 | 
        RefreshRecommendModel(); 
 | 
        friendsModel.RefreshRecommendFriendEvent -= RefreshRecommendModel; 
 | 
        friendsModel.RefreshRecommendFriendEvent += RefreshRecommendModel; 
 | 
        TimeDownMgr.CoolTimeData data; 
 | 
        if (TimeDownMgr.Instance.Get(TimeDownMgr.CoolTimeType.BagSort, out data)) 
 | 
        { 
 | 
            data.func = RefreshTime; 
 | 
            _refreshImage.SetSprite("BlackBtn"); 
 | 
            _refreshText.color = greyColor; 
 | 
            _refreshText.text = Language.Get("FriendsPlayer101", Mathf.CeilToInt(data.duration - data.time)); 
 | 
            _refreshBtn.interactable = false; 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            _refreshText.color = brightColor; 
 | 
            _refreshImage.SetSprite("LevelButton3"); 
 | 
            _refreshText.text = Language.Get("FriendsPlayer102"); 
 | 
            _refreshBtn.interactable = true; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public void FriendListUICtrl(bool isShow) 
 | 
    { 
 | 
        _addfriendCtrl.mScrollRect.SetActive(isShow); 
 | 
        _searchGo.SetActive(isShow); 
 | 
        _searchBG.SetActive(isShow); 
 | 
        friendsModel.RefreshFriendlistUI(isShow); 
 | 
    } 
 | 
  
 | 
    private void RefreshTime(float time) 
 | 
    { 
 | 
        if (time <= 0) 
 | 
        { 
 | 
            _refreshImage.SetSprite("LevelButton3"); 
 | 
            _refreshText.text = Language.Get("FriendsPlayer102"); 
 | 
            _refreshBtn.interactable = true; 
 | 
            _refreshText.color = brightColor; 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            _refreshText.text = Language.Get("FriendsPlayer101", time); 
 | 
            _refreshBtn.interactable = false; 
 | 
            _refreshText.color = greyColor; 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
    private void RefreshRecommendModel() 
 | 
    { 
 | 
        Dictionary<uint, FriendPlayer> RecommendDict = friendsModel.GetRecommendDict(); 
 | 
        _addfriendCtrl.Refresh(); 
 | 
        foreach (var key in RecommendDict.Keys) 
 | 
        { 
 | 
            _addfriendCtrl.AddCell(ScrollerDataType.Header, (int)key); 
 | 
        } 
 | 
        _addfriendCtrl.Restart(); 
 | 
  
 | 
  
 | 
        if (IsRecommend) 
 | 
        { 
 | 
            _refreshBtn.SetActive(true); 
 | 
            _titleText.text = Language.Get("Friend101"); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            _refreshBtn.SetActive(false); 
 | 
            _titleText.text = Language.Get("Friend102"); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    private void OnRefreshAddFriendCell(ScrollerDataType type, CellView cell) 
 | 
    { 
 | 
        cell.GetComponent<Toggle>().group = _addfriendGroup; 
 | 
        FriendPlayer data = friendsModel.GetAddFriendInfo((uint)cell.index); 
 | 
        Text friendName = cell.transform.Find("PlayerNameText").GetComponent<Text>(); 
 | 
        Text friendLv = cell.transform.Find("Contain_LV/PlayerLv").GetComponent<Text>(); 
 | 
        Image friendLvIcon = cell.transform.Find("Contain_LV/PlayerLvIcon").GetComponent<Image>(); 
 | 
        Image titleIcon = cell.transform.Find("titleImage").GetComponent<Image>(); 
 | 
        Image stateText = cell.transform.Find("StateText").GetComponent<Image>(); 
 | 
        Image pictureIcon = cell.transform.Find("Picture/ChatIcon").GetComponent<Image>(); 
 | 
        pictureIcon.SetSprite(GeneralDefine.GetOtherJobHeadPortrait(data.Job, 0)); 
 | 
  
 | 
        int nirvanaLv = data.LV - friendsModel.OpenGreatLV; 
 | 
        if (nirvanaLv > 0) 
 | 
        { 
 | 
            friendLvIcon.SetActive(true); 
 | 
            friendLv.text = nirvanaLv.ToString(); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            friendLvIcon.SetActive(false); 
 | 
            friendLv.text = data.LV.ToString(); 
 | 
        } 
 | 
  
 | 
  
 | 
        RealmConfig realmModel = RealmConfig.Get(data.RealmLV); 
 | 
        if (data.RealmLV > 0 && RealmConfig.Has(data.RealmLV)) 
 | 
        { 
 | 
            titleIcon.SetActive(true); 
 | 
            titleIcon.SetSprite(realmModel.Img); 
 | 
            friendName.transform.localPosition = existRealmPos; 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            titleIcon.SetActive(false); 
 | 
            friendName.transform.localPosition = noExistRealmPos; 
 | 
        } 
 | 
        friendName.text = data.PlayerName; 
 | 
  
 | 
        Button addBtn = cell.transform.Find("AddButton").GetComponent<Button>(); 
 | 
        addBtn.onClick.RemoveAllListeners(); 
 | 
        addBtn.onClick.AddListener(() => { OnClickAddBtn(data); }); 
 | 
  
 | 
        if (data.IsApplay) 
 | 
        { 
 | 
            addBtn.SetActive(false); 
 | 
            stateText.SetActive(true); 
 | 
            //stateText.text = Language.Get("Friend104"); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            addBtn.SetActive(true); 
 | 
            stateText.SetActive(false); 
 | 
        } 
 | 
  
 | 
        Dictionary<uint, FriendPlayer> friendDict = friendsModel.GetFriendInfoDict((byte)GroupType.Friend); 
 | 
        if (friendDict != null) 
 | 
        { 
 | 
            if (friendDict.ContainsKey(data.PlayerID)) 
 | 
            { 
 | 
                addBtn.SetActive(false); 
 | 
                stateText.SetActive(true); 
 | 
                //stateText.text = Language.Get("Friend105"); 
 | 
            } 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
  
 | 
    #region 按钮事件 
 | 
    //点击搜索按钮 
 | 
    private void OnClickLookBtn() 
 | 
    { 
 | 
        if (!string.IsNullOrEmpty(_strSearch)) 
 | 
        { 
 | 
            CA9A4_tagCGFuzzySearchPlayer searchPlayer = new CA9A4_tagCGFuzzySearchPlayer(); 
 | 
            searchPlayer.Name = _strSearch; 
 | 
            GameNetSystem.Instance.SendInfo(searchPlayer); 
 | 
            IsRecommend = false; 
 | 
            RefreshRecommendModel(); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            ServerTipDetails.DisplayNormalTip(Language.Get("Friend106")); 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
    private void OnEndInput(string inputStr) 
 | 
    { 
 | 
        _strSearch = inputStr; 
 | 
    } 
 | 
  
 | 
    public void OnClickRefreshBtn() 
 | 
    { 
 | 
        friendsModel.OnSendCA9A3_tagCGQueryRecommendFriends(); 
 | 
        TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.BagSort, 5.0f, RefreshTime); 
 | 
        _refreshImage.SetSprite("BlackBtn"); 
 | 
        _refreshText.text = Language.Get("FriendsPlayer101", 5); 
 | 
        _refreshBtn.interactable = false; 
 | 
        _refreshText.color = greyColor; 
 | 
    } 
 | 
  
 | 
    private void OnClickAddBtn(FriendPlayer data) 
 | 
    { 
 | 
        Debug.Log("OnClickAddBtn" + data.PlayerID + data.PlayerName); 
 | 
        data.IsApplay = true; 
 | 
        _addfriendCtrl.m_Scorller.RefreshActiveCellViews(); 
 | 
        CB301_tagCGAddFriend addFriend = new CB301_tagCGAddFriend(); 
 | 
        addFriend.TagID = data.PlayerID; 
 | 
        addFriend.TagName = ""; 
 | 
        GameNetSystem.Instance.SendInfo(addFriend); 
 | 
    } 
 | 
    #endregion 
 | 
  
 | 
} 
 |