| | |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using Cysharp.Threading.Tasks; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | |
| | | [SerializeField] Text guildNumText; //加公会编号 |
| | | [SerializeField] Button copyBtn; |
| | | [SerializeField] Text noticeText; //公告 |
| | | [SerializeField] AvatarCell leaderAvatar; |
| | | [SerializeField] OfficialTitleCell leaderTitle; |
| | | [SerializeField] Text leaderLevelText; |
| | | [SerializeField] Text guildJobText; |
| | | [SerializeField] Text leaderNameText; |
| | | [SerializeField] Text leaderFightPowerText; |
| | | |
| | | [SerializeField] ScrollerController scroller; |
| | | |
| | | [SerializeField] Button opearteBtn; |
| | | [SerializeField] Text opearteBtnText; |
| | | |
| | | |
| | | int guildID; |
| | | int leaderID; |
| | | int leaderServerID; |
| | | static bool m_ShowOpearteBtn = true; |
| | | |
| | | /// <summary> |
| | | /// 设置是否显示操作按钮(在打开界面前调用),默认显示 |
| | | /// </summary> |
| | | public static void SetShowOpearteBtn(bool show) |
| | | { |
| | | m_ShowOpearteBtn = show; |
| | | } |
| | | |
| | | protected override void InitComponent() |
| | | { |
| | | opearteBtn.AddListener(() => |
| | |
| | | UIHelper.CopyToClipboard(guildNumText.text); |
| | | SysNotifyMgr.Instance.ShowTip("GuildSys8"); |
| | | }); |
| | | |
| | | leaderAvatar.AddListener(() => |
| | | { |
| | | OtherPlayerDetailManager.Instance.ViewPlayerDetail(leaderID, leaderServerID); |
| | | }); |
| | | } |
| | | |
| | | 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.guildsDict.ContainsKey(guildID)) |
| | | |
| | | if (GuildManager.Instance.viewGuildsDict.ContainsKey(guildID)) |
| | | { |
| | | guildInfo = GuildManager.Instance.guildsDict[guildID]; |
| | | } |
| | | else |
| | | { |
| | | if (GuildManager.Instance.viewGuildsDict.ContainsKey(guildID)) |
| | | { |
| | | guildInfo = GuildManager.Instance.viewGuildsDict[guildID]; |
| | | } |
| | | guildInfo = GuildManager.Instance.viewGuildsDict[guildID]; |
| | | } |
| | | if (guildInfo == null) return; |
| | | leaderID = guildInfo.LeaderID; |
| | | leaderServerID = guildInfo.ServerID; |
| | | OtherPlayerDetailManager.Instance.ViewPlayerDetail(leaderID, leaderServerID, (int)ViewPlayerType.viewGuildLeader); |
| | | |
| | | var config = FamilyConfig.Get(guildInfo.FamilyLV); |
| | | guildEmblem.Display(guildInfo.EmblemID, guildInfo.EmblemWord, 0.7f); |
| | |
| | | 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); |
| | | leaderNameText.text = guildInfo.LeaderName; |
| | | noticeText.text = string.IsNullOrEmpty(guildInfo.Broadcast) ? Language.Get("Guild_62") : guildInfo.Broadcast; |
| | | |
| | | |
| | |
| | | } |
| | | 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) |
| | | { |
| | | if (viewType != (int)ViewPlayerType.viewGuildLeader) |
| | | { |
| | | return; |
| | | } |
| | | if (playerID != leaderID) |
| | | { |
| | | return; |
| | | } |
| | | var leaderInfo = OtherPlayerDetailManager.Instance.GetViewPlayerData(playerID); |
| | | |
| | | leaderAvatar.InitUI(AvatarHelper.GetAvatarModel(0, leaderInfo.Face, leaderInfo.FacePic)); |
| | | leaderTitle.InitUI(leaderInfo.RealmLV, leaderInfo.TitleID); |
| | | leaderLevelText.text = leaderInfo.LV.ToString(); |
| | | guildJobText.text = RichTextMsgReplaceConfig.GetRichReplace("FAMILY", 3); |
| | | leaderFightPowerText.text = UIHelper.ReplaceLargeArtNum(leaderInfo.FightPower); |
| | | RefreshMemberList(); |
| | | } |
| | | |
| | | } |
| | | void OnUpdateViewFamilyInfo(int familyID) |
| | | { |
| | | Display(); |
| | | } |
| | | |
| | | } |