using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
public class GubaoCell : MonoBehaviour
|
{
|
[SerializeField] Button gbBtn;
|
[SerializeField] ImageEx gbImg;
|
[SerializeField] Image gbBGImg;
|
[SerializeField] UIEffectPlayer gbBGEffect;
|
[SerializeField] UIEffectPlayer gbEffect;
|
[SerializeField] Image canActiveImg;
|
[SerializeField] Text nameText;
|
[SerializeField] Text lvText;
|
[SerializeField] Transform starRect;
|
[SerializeField] Image[] starImgs;
|
[SerializeField] Transform processRect;
|
[SerializeField] Image processImg;
|
[SerializeField] Text processText;
|
[SerializeField] Image fullProcessImg;
|
[SerializeField] Image redImg;
|
|
|
public void Display(int quality, int index)
|
{
|
var gubaoID = GubaoManager.Instance.gubaoCollectDict[quality][index];
|
DisplayByGBID(gubaoID);
|
redImg.SetActive(GubaoManager.Instance.IsRedTip(gubaoID));
|
}
|
|
public void Display(int gubaoID)
|
{
|
DisplayByGBID(gubaoID);
|
|
var gbData = GubaoManager.Instance.TryGetGubaoInfo(gubaoID);
|
int star = 0;
|
if (gbData != null)
|
{
|
star = gbData.GubaoStar;
|
}
|
redImg.SetActive(star < 5 && GubaoManager.Instance.CanStarUpGubao(gubaoID));
|
}
|
|
void DisplayByGBID(int gubaoID)
|
{
|
gbBtn.AddListener(() =>
|
{
|
UIManager.Instance.OpenWindow<GubaoDetailWin>(gubaoID);
|
});
|
|
var config = GubaoConfig.Get(gubaoID);
|
if (config == null)
|
{
|
Debug.LogError($"找不到古宝ID: {gubaoID}");
|
return;
|
}
|
int quality = config.GubaoQuality;
|
gbImg.SetOrgSprite(config.Icon, "gbicon");
|
gbImg.SetNativeSize();
|
gbBGImg.SetSprite($"GubaoBG{quality}");
|
|
var gbData = GubaoManager.Instance.TryGetGubaoInfo(gubaoID);
|
int lv = 0;
|
int star = 0;
|
if (gbData != null)
|
{
|
lv = gbData.GubaoLV;
|
star = gbData.GubaoStar;
|
gbImg.gray = false;
|
canActiveImg.SetActive(false);
|
starRect.SetActive(true);
|
for (int i = 0; i < starImgs.Length; i++)
|
{
|
if (i < star)
|
{
|
starImgs[i].SetActive(true);
|
//循环不同图
|
int starIndex = star / starImgs.Length * starImgs.Length + i + 1;
|
if (starIndex > star)
|
{
|
starIndex -= starImgs.Length;
|
}
|
starImgs[i].SetSprite($"GubaoStar{starIndex}");
|
}
|
else
|
{
|
starImgs[i].SetActive(false);
|
}
|
}
|
processRect.SetActive(false);
|
}
|
else
|
{
|
gbImg.gray = true;
|
canActiveImg.SetActive(GubaoManager.Instance.CanActiveGubao(gubaoID));
|
starRect.SetActive(false);
|
processRect.SetActive(true);
|
var cnt = VirtualPackManager.Instance.GetNoPackItemCount(config.UnlockItemID);
|
float value = cnt*1.0f / config.UnlockItemCnt;
|
processImg.fillAmount = value;
|
fullProcessImg.SetActive(value >= 1);
|
processText.text = $"{cnt}/{config.UnlockItemCnt}";
|
}
|
gbBGEffect.PlayByArrIndex(quality - 2);
|
if (GubaoManager.Instance.IsActive(gubaoID))
|
{
|
gbEffect.PlayByArrIndex(quality - 2);
|
}
|
else
|
{
|
gbEffect.Stop();
|
}
|
nameText.text = config.Name;
|
nameText.color = UIHelper.GetFuncQualityColor(quality);
|
lvText.text = lv == 0 ? "" : Language.Get("L1113", lv);
|
redImg.SetActive(GubaoManager.Instance.IsRedTip(gubaoID));
|
}
|
}
|