yyl
2026-01-30 66c8ccb8a2ee5355ed7a9fb66b81ef0aad70fee3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
using UnityEngine;
 
/// <summary>
/// 公会等级界面
/// </summary>
public class GuildLevelWin : UIBase
{
    [SerializeField] Transform noMax;
    [SerializeField] Transform max;
    [SerializeField] GuildLevelItem nowItem;
    [SerializeField] GuildLevelItem nextItem;
    [SerializeField] GuildLevelItem maxItem;
    [SerializeField] ImageEx sliderImage;
    [SerializeField] TextEx sliderText;
 
    protected override void OnPreOpen()
    {
        PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
        Display();
    }
 
    protected override void OnPreClose()
    {
        PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
    }
 
    private void OnRefreshFairyInfo()
    {
        Display();
    }
 
    private void Display()
    {
        PlayerFairyData fairyData = PlayerDatas.Instance.fairyData;
        if (fairyData == null || !fairyData.HasFairy || fairyData.fairy == null)
            return;
        int nowFamilyLV = fairyData.fairy.FamilyLV;
        bool hasNextLv = FamilyConfig.TryGetNextLvConfig(nowFamilyLV, out FamilyConfig nowConfig, out FamilyConfig nextConfig);
        noMax.SetActive(hasNextLv);
        max.SetActive(!hasNextLv);
 
        nowItem.SetActive(hasNextLv);
        nextItem.SetActive(hasNextLv);
        maxItem.SetActive(!hasNextLv);
 
        if (hasNextLv)
        {
            nowItem.Display(nowConfig);
            nextItem.Display(nextConfig);
 
            RefreshSlider();
            return;
        }
 
        if (!FamilyConfig.TryGetMaxFamilyLVConfig(out FamilyConfig maxConfig))
            return;
        maxItem.Display(maxConfig);
    }
 
    public void RefreshSlider()
    {
        PlayerFairyData fairyData = PlayerDatas.Instance.fairyData;
        if (fairyData == null || !fairyData.HasFairy || fairyData.fairy == null)
            return;
        int nowFamilyLV = fairyData.fairy.FamilyLV;
        bool hasNextLv = FamilyConfig.TryGetNextLvConfig(nowFamilyLV, out FamilyConfig nowConfig, out FamilyConfig nextConfig);
        if (hasNextLv)
        {
            int familyLVExp = fairyData.fairy.FamilyLVExp;
            sliderImage.fillAmount = nowConfig.NeedExp == 0 ? 1 : (float)familyLVExp / nowConfig.NeedExp;
            sliderText.text = nowConfig.NeedExp == 0 ? Language.Get("L1055") : StringUtility.Concat(familyLVExp.ToString(), "/", nowConfig.NeedExp.ToString());
        }
    }
 
}