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
|
|
}
|