Main/System/Guild/GuildManager.cs
@@ -689,14 +689,41 @@
    #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)