using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
/// <summary>
|
/// 加入公会界面 :公会查找列表,也是排行榜
|
/// </summary>
|
public class GuildJoinWin : UIBase
|
{
|
[SerializeField] InputField findText;
|
[SerializeField] Button findBtn;
|
[SerializeField] Button createGuildBtn;
|
[SerializeField] Button quicklyJoinGuildBtn;
|
[SerializeField] ScrollerController guildListScroller;
|
[SerializeField] Transform noGuildTf;
|
|
string lastQuery = "";
|
int lastPage = 0;
|
protected override void InitComponent()
|
{
|
findBtn.AddListener(() => OnFindBtnClick());
|
createGuildBtn.AddListener(OnCreateGuildBtnClick);
|
quicklyJoinGuildBtn.AddListener(OnQuicklyJoinGuildBtnClick);
|
}
|
protected override void OnPreOpen()
|
{
|
findText.text = "";
|
//打开界面默认请求,滚动的时候需要处理页数
|
QueryGuild();
|
GuildManager.Instance.OnRefreshFairyList += OnRefreshGuildList;
|
GuildManager.Instance.MyRequestJoinEvent += MyRequestJoinEvent;
|
PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
|
guildListScroller.OnRefreshCell += RefreshCell;
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
GuildManager.Instance.OnRefreshFairyList -= OnRefreshGuildList;
|
GuildManager.Instance.MyRequestJoinEvent -= MyRequestJoinEvent;
|
guildListScroller.OnRefreshCell -= RefreshCell;
|
PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
|
|
var win = UIManager.Instance.GetUI<MainWin>();
|
if (win)
|
win.RestoreFuncBtn();
|
|
}
|
|
void OnRefreshFairyInfo()
|
{
|
//当前界面下有刷新自家的公会数据,说明一定是加入了公会,需主动跳转到公会界面
|
CloseWindow();
|
var win = UIManager.Instance.GetUI<MainWin>();
|
if (win)
|
win.ClickFunc(4);
|
}
|
|
void Display()
|
{
|
CreateScroller();
|
}
|
|
void MyRequestJoinEvent()
|
{
|
guildListScroller.m_Scorller.RefreshActiveCellViews();
|
}
|
|
|
//列表变小的话 重新创建;列表变大的话,只添加
|
void CreateScroller()
|
{
|
if (GuildManager.Instance.pageIndexList.Count == 0)
|
{
|
noGuildTf.SetActive(true);
|
guildListScroller.SetActive(false);
|
return;
|
}
|
noGuildTf.SetActive(false);
|
guildListScroller.SetActive(true);
|
|
var startCount = guildListScroller.GetNumberOfCells();
|
if (startCount > GuildManager.Instance.pageIndexList.Count)
|
{
|
guildListScroller.Refresh();
|
}
|
for (int i = startCount; i < GuildManager.Instance.pageIndexList.Count; i++)
|
{
|
guildListScroller.AddCell(ScrollerDataType.Header, i);
|
}
|
guildListScroller.Restart();
|
}
|
|
|
|
void OnRefreshGuildList()
|
{
|
CreateScroller();
|
}
|
|
void RefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetComponent<GuildViewListCell>();
|
_cell.Display(cell.index);
|
}
|
|
private void OnFindBtnClick()
|
{
|
var nowQuery = findText.text;
|
if (string.IsNullOrEmpty(nowQuery) && string.IsNullOrEmpty(lastQuery))
|
{
|
SysNotifyMgr.Instance.ShowTip("GuildSys5");
|
return;
|
}
|
if (nowQuery.Length < 2 && nowQuery.Length > 0)
|
{
|
SysNotifyMgr.Instance.ShowTip("GuildSys7");
|
return;
|
}
|
|
lastQuery = nowQuery;
|
lastPage = 0;
|
guildListScroller.Refresh();
|
GuildManager.Instance.SendFindGuild(lastQuery);
|
}
|
|
|
void QueryGuild()
|
{
|
lastQuery = "";
|
lastPage = 0;
|
guildListScroller.Refresh();
|
GuildManager.Instance.SendFindGuild(lastQuery);
|
}
|
|
private void OnCreateGuildBtnClick()
|
{
|
UIManager.Instance.OpenWindow<GuildCreateWin>();
|
}
|
|
private void OnQuicklyJoinGuildBtnClick()
|
{
|
if (GuildManager.Instance.pageIndexList.Count == 0)
|
{
|
SysNotifyMgr.Instance.ShowTip("QuickEnterFamilyFail");
|
return;
|
}
|
GuildManager.Instance.SendApplyGuild(0, 0);
|
|
}
|
|
}
|