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