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;
|
|
|
/// <summary>
|
/// 显示心愿选择结果框
|
/// </summary>
|
/// <param name="quality">5 神话 4 传奇</param>
|
/// <param name="addAction">默认打开心愿界面,可传入点击添加按钮事件 </param>
|
/// <param name="heroAction">默认打开心愿界面,可传入点击武将头像事件</param>
|
/// <param name="changeHeroID">预览英雄ID,-1取消预览</param>
|
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;
|
|
bool headGray = false;
|
int itemID = HappyXBModel.Instance.GetWishCardItemID(quality);
|
//心愿抽取情况 <LIBID:已抽到次数,是否勾选自动,当前心愿ID>
|
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<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, 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<HeroCallHopeWin>(quality == 4 ? 1 : 0);
|
return;
|
}
|
else
|
{
|
SysNotifyMgr.Instance.ShowTip("HeroWishCallOpen", needOpenCnt);
|
}
|
});
|
}
|
else
|
{
|
addBtn.AddListener(()=> { addAction.Invoke(quality); });
|
}
|
}
|
|
}
|