using UnityEngine;
|
using UnityEngine.Events;
|
using UnityEngine.UI;
|
|
|
public class HeroCallHopeAddCell : MonoBehaviour
|
{
|
[SerializeField] HeroHeadBaseNoTrainCell head;
|
[SerializeField] Image notOpenImg;
|
[SerializeField] Image addImg;
|
[SerializeField] Button addBtn;
|
|
|
|
public void Display(int quality, UnityAction<int> addAction = null, UnityAction<int> heroAction = null, int changeHeroID = 0)
|
{
|
var data = HappyXBModel.Instance.GetXBInfoByType((int)HappXBTitle.HeroCallAdvanced);
|
var config = TreasureSetConfig.Get((int)HappXBTitle.HeroCallAdvanced);
|
var needOpenCnt = config.WishOpen - data.treasureCount;
|
|
|
int wishID = 0;
|
int wishCnt = 0;
|
int heroID = 0;
|
if (needOpenCnt <= 0)
|
{
|
notOpenImg.SetActive(false);
|
|
|
if (HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, quality, out wishID, out wishCnt))
|
{
|
if (heroAction == null)
|
{
|
heroAction = (quality) =>
|
{
|
if (HappyXBModel.Instance.IsTodayWishFinish())
|
{
|
SysNotifyMgr.Instance.ShowTip("HeroWishFinish");
|
return;
|
}
|
|
UIManager.Instance.OpenWindow<HeroCallHopeWin>(quality == 4 ? 1 : 0);
|
};
|
}
|
|
heroID = TreasureItemLibConfig.Get(wishID).ItemID;
|
|
}
|
if (changeHeroID > 0)
|
{
|
//预览
|
heroID = changeHeroID;
|
}
|
else if (changeHeroID == -1)
|
{
|
//取消预览
|
heroID = 0;
|
}
|
if (heroID > 0)
|
{
|
head.SetActive(true);
|
addImg.SetActive(false);
|
head.Init(heroID, wishCnt >= HappyXBModel.wishMaxOutCnt, ()=> { heroAction.Invoke(quality); });
|
}
|
else
|
{
|
head.SetActive(false);
|
addImg.SetActive(true);
|
}
|
}
|
else
|
{
|
notOpenImg.SetActive(true);
|
addImg.SetActive(false);
|
head.SetActive(false);
|
}
|
|
|
|
|
if (addAction == null)
|
{
|
addBtn.AddListener(() =>
|
{
|
if (needOpenCnt <= 0)
|
{
|
if (HappyXBModel.Instance.IsTodayWishFinish())
|
{
|
SysNotifyMgr.Instance.ShowTip("HeroWishFinish");
|
return;
|
}
|
UIManager.Instance.OpenWindow<HeroCallHopeWin>(quality == 4 ? 1 : 0);
|
return;
|
}
|
else
|
{
|
SysNotifyMgr.Instance.ShowTip("HeroWishCallOpen", needOpenCnt);
|
}
|
});
|
}
|
else
|
{
|
addBtn.AddListener(()=> { addAction.Invoke(quality); });
|
}
|
}
|
|
}
|