using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
public class HeroCallHopeAddCell : MonoBehaviour
{
[SerializeField] HeroHeadBaseNoTrainCell head;
[SerializeField] Image notOpenImg;
[SerializeField] Image addImg;
[SerializeField] Button addBtn;
[SerializeField] Transform tipRect;
[SerializeField] Text freeText;
[SerializeField] Text itemCntText;
[SerializeField] Image itemIcon;
///
/// 显示心愿选择结果框
///
/// 5 神话 4 传奇
/// 默认打开心愿界面,可传入点击添加按钮事件
/// 默认打开心愿界面,可传入点击武将头像事件
/// 预览英雄ID,-1取消预览
public void Display(int quality, UnityAction addAction = null, UnityAction 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;
bool headGray = false;
int itemID = HappyXBModel.Instance.GetWishCardItemID(quality);
//心愿抽取情况
var wishData = HappyXBModel.Instance.GetWishDataByQuality(quality);
if (wishData == null)
{
return;
}
if (wishData.wishCnt < HappyXBModel.wishMaxOutCnt)
{
var clientwWishID = quality == 5 ? HappyXBModel.Instance.selectSHHeroWishID : HappyXBModel.Instance.selectCSHeroWishID;
if (clientwWishID <= 0)
{
tipRect.SetActive(false);
}
else
{
tipRect.SetActive(true);
freeText.SetActive(true);
itemCntText?.SetActive(false);
}
headGray = false;
}
else if (wishData.auto)
{
if (itemCntText == null)
{
tipRect.SetActive(false);
}
else
{
tipRect.SetActive(true);
freeText.SetActive(false);
itemCntText.SetActive(true);
itemIcon.SetItemSprite(itemID);
itemCntText.text = UIHelper.ShowUseItem(PackType.Item, itemID, 1, bright: false);
}
headGray = PackManager.Instance.GetItemCountByID(PackType.Item, itemID) <= 0;
}
else
{
tipRect.SetActive(false);
headGray = true;
}
int wishID = 0;
bool auto = false;
int wishCnt = 0;
int heroID = 0;
if (needOpenCnt <= 0)
{
notOpenImg.SetActive(false);
if (HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, quality, out wishID, out wishCnt, out auto))
{
if (heroAction == null)
{
heroAction = (quality) =>
{
// if (HappyXBModel.Instance.IsTodayWishFinish())
// {
// SysNotifyMgr.Instance.ShowTip("HeroWishFinish");
// return;
// }
UIManager.Instance.OpenWindow(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, headGray, ()=> { 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(quality == 4 ? 1 : 0);
return;
}
else
{
SysNotifyMgr.Instance.ShowTip("HeroWishCallOpen", needOpenCnt);
}
});
}
else
{
addBtn.AddListener(()=> { addAction.Invoke(quality); });
}
}
}