| | |
| | | #region 查看目标公会
|
| | | public Dictionary<int, FairyData> viewGuildsDict = new Dictionary<int, FairyData>();
|
| | |
|
| | | public event Action OnUpdateViewFamilyInfo;
|
| | | public event Action<int> OnUpdateViewFamilyInfo;
|
| | |
|
| | | public void UpdateViewFamilyInfo(HA519_tagSCTagFamilyInfo pack)
|
| | | {
|
| | | FairyData data = new FairyData();
|
| | | SetFairyViewData(data, pack);
|
| | |
|
| | | // 存储并排序成员列表
|
| | | var memberList = new List<HA519_tagSCTagFamilyInfo.tagSCTagFamilyInfoMem>(pack.MemberList);
|
| | | memberList.Sort((a, b) =>
|
| | | {
|
| | | // 主排序:职务降序(3-族长 > 2-副族长 > 1-精英 > 0-成员)
|
| | | int jobCompare = b.FmLV.CompareTo(a.FmLV);
|
| | | if (jobCompare != 0) return jobCompare;
|
| | | // 次排序:战力降序
|
| | | long powerA = a.FightPowerEx * Constants.ExpPointValue + a.FightPower;
|
| | | long powerB = b.FightPowerEx * Constants.ExpPointValue + b.FightPower;
|
| | | return powerB.CompareTo(powerA);
|
| | | });
|
| | | data.memberList = memberList;
|
| | |
|
| | | viewGuildsDict[(int)data.FamilyID] = data;
|
| | | OnUpdateViewFamilyInfo?.Invoke();
|
| | | OnUpdateViewFamilyInfo?.Invoke((int)data.FamilyID);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取指定公会的排序后的成员列表(职务降序 → 战力降序)
|
| | | /// </summary>
|
| | | public List<HA519_tagSCTagFamilyInfo.tagSCTagFamilyInfoMem> GetSortedMemberList(int familyID)
|
| | | {
|
| | | if (viewGuildsDict.TryGetValue(familyID, out var data))
|
| | | {
|
| | | return data.memberList;
|
| | | }
|
| | | return null;
|
| | | }
|
| | |
|
| | | public static void SetFairyViewData(FairyData data, HA519_tagSCTagFamilyInfo view)
|