using System.Collections;
|
using System.Collections.Generic;
|
using Cysharp.Threading.Tasks;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
/// <summary>
|
/// 查看其他公会界面
|
/// </summary>
|
public class GuildPreviewWin : UIBase
|
{
|
[SerializeField] GuildEmblemCell guildEmblem;
|
[SerializeField] Text guildMemberCountText;
|
[SerializeField] Text totalFightPowerText;
|
[SerializeField] Text guildLevelText;
|
[SerializeField] Text guildNameText; //加服务器信息
|
[SerializeField] Text guildNumText; //加公会编号
|
[SerializeField] Button copyBtn;
|
[SerializeField] Text noticeText; //公告
|
|
[SerializeField] ScrollerController scroller;
|
|
[SerializeField] Button opearteBtn;
|
[SerializeField] Text opearteBtnText;
|
|
|
int guildID;
|
static bool m_ShowOpearteBtn = true;
|
|
/// <summary>
|
/// 设置是否显示操作按钮(在打开界面前调用),默认显示
|
/// </summary>
|
public static void SetShowOpearteBtn(bool show)
|
{
|
m_ShowOpearteBtn = show;
|
}
|
|
protected override void InitComponent()
|
{
|
opearteBtn.AddListener(() =>
|
{
|
var guildInfo = GuildManager.Instance.guildsDict[guildID];
|
if (guildInfo == null) return;
|
var state = GuildManager.Instance.GetRequestState(guildInfo);
|
GuildManager.Instance.SendApplyGuild(guildID, state == 2 ? 1 : 0);
|
});
|
|
copyBtn.AddListener(() =>
|
{
|
UIHelper.CopyToClipboard(guildNumText.text);
|
SysNotifyMgr.Instance.ShowTip("GuildSys8");
|
});
|
}
|
|
protected override void OnPreOpen()
|
{
|
GuildManager.Instance.OnUpdateViewFamilyInfo += OnUpdateViewFamilyInfo;
|
OtherPlayerDetailManager.Instance.OnRevPackage += OnRevLeaderPackage;
|
scroller.OnRefreshCell += OnRefreshMemberCell;
|
guildID = functionOrder;
|
|
opearteBtn.SetActive(m_ShowOpearteBtn);
|
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
GuildManager.Instance.OnUpdateViewFamilyInfo -= OnUpdateViewFamilyInfo;
|
OtherPlayerDetailManager.Instance.OnRevPackage -= OnRevLeaderPackage;
|
scroller.OnRefreshCell -= OnRefreshMemberCell;
|
|
m_ShowOpearteBtn = true;
|
|
}
|
|
void Display()
|
{
|
FairyData guildInfo = null;
|
|
if (GuildManager.Instance.viewGuildsDict.ContainsKey(guildID))
|
{
|
guildInfo = GuildManager.Instance.viewGuildsDict[guildID];
|
}
|
if (guildInfo == null) return;
|
|
var config = FamilyConfig.Get(guildInfo.FamilyLV);
|
guildEmblem.Display(guildInfo.EmblemID, guildInfo.EmblemWord, 0.7f);
|
guildMemberCountText.text = guildInfo.MemberCount + "/" + config.MemberMax;
|
totalFightPowerText.text = UIHelper.ReplaceLargeArtNum(guildInfo.totalFightPower);
|
guildLevelText.text = Language.Get("L1094") + guildInfo.FamilyLV;
|
guildNameText.text = guildInfo.FamilyName + Language.Get("L1039", ServerListCenter.Instance.GetServerName(guildInfo.ServerID));
|
guildNumText.text = GuildManager.Instance.EncryptGuildID(guildInfo.FamilyID);
|
noticeText.text = string.IsNullOrEmpty(guildInfo.Broadcast) ? Language.Get("Guild_62") : guildInfo.Broadcast;
|
|
|
var state = GuildManager.Instance.GetRequestState(guildInfo);
|
|
string key = "";
|
switch (state)
|
{
|
case 1:
|
key = "Guild_17";
|
break;
|
case 2:
|
key = "Guild_21";
|
break;
|
default:
|
key = "Guild_22";
|
break;
|
}
|
opearteBtnText.text = Language.Get(key);
|
|
RefreshMemberList();
|
}
|
|
void RefreshMemberList()
|
{
|
var memberList = GuildManager.Instance.GetSortedMemberList(guildID);
|
if (memberList == null) return;
|
|
scroller.Refresh();
|
for (int i = 0; i < memberList.Count; i++)
|
{
|
scroller.AddCell(ScrollerDataType.Header, i);
|
}
|
scroller.Restart();
|
}
|
|
void OnRefreshMemberCell(ScrollerDataType type, CellView cell)
|
{
|
if (cell is GuildPreviewCell exCell)
|
{
|
var memberList = GuildManager.Instance.GetSortedMemberList(guildID);
|
if (memberList != null && cell.index >= 0 && cell.index < memberList.Count)
|
{
|
exCell.Display(memberList[cell.index]);
|
}
|
}
|
}
|
|
void OnRevLeaderPackage(int viewType, int playerID)
|
{
|
RefreshMemberList();
|
}
|
|
void OnUpdateViewFamilyInfo(int familyID)
|
{
|
Display();
|
}
|
|
}
|