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());
|
}
|
}
|
|
}
|