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 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; 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(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(quality == 4 ? 1 : 0); return; } else { SysNotifyMgr.Instance.ShowTip("HeroWishCallOpen", needOpenCnt); } }); } else { addBtn.AddListener(()=> { addAction.Invoke(quality); }); } } }