using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// 招募心愿 /// public class HeroCallHopeWin : UIBase { [SerializeField] HeroCallHopeAddCell shHero; [SerializeField] HeroCallHopeAddCell csHero; [SerializeField] Text tip; [SerializeField] ScrollerController scroller; [SerializeField] GroupButtonEx shBtn; [SerializeField] GroupButtonEx csBtn; [SerializeField] Button cancleBtn; [SerializeField] Button confirmBtn; Dictionary qualityLibIDDict = new Dictionary() { { 0, 105 }, { 1, 104 } }; protected override void InitComponent() { cancleBtn.AddListener(CloseWindow); confirmBtn.AddListener(SendSelectHero); shBtn.AddListener(()=> { HappyXBModel.Instance.selectWishListTab = 0; Display(); }); csBtn.AddListener(()=> { HappyXBModel.Instance.selectWishListTab = 1; Display(); }); } protected override void OnPreOpen() { HappyXBModel.Instance.selectWishListTab = functionOrder; HappyXBModel.Instance.RefreshXBTypeInfoAct += RefreshXBTypeInfo; HappyXBModel.Instance.OnSelectWishHeroEvent += OnSelectWishHeroEvent; scroller.OnRefreshCell += OnRefreshCell; HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, 5, out HappyXBModel.Instance.selectSHHeroWishID, out int shWishCnt); HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, 4, out HappyXBModel.Instance.selectCSHeroWishID, out int csWishCnt); tip.text = Language.Get("HeroCall7", HappyXBModel.wishMaxOutCnt); Display(); } protected override void OnPreClose() { HappyXBModel.Instance.RefreshXBTypeInfoAct -= RefreshXBTypeInfo; scroller.OnRefreshCell -= OnRefreshCell; HappyXBModel.Instance.OnSelectWishHeroEvent -= OnSelectWishHeroEvent; } void Display() { shHero.Display(5, AddHero, ShowHeroTip, HappyXBModel.Instance.selectSHHeroWishID == 0 ? 0 : TreasureItemLibConfig.Get(HappyXBModel.Instance.selectSHHeroWishID).ItemID); csHero.Display(4, AddHero, ShowHeroTip, HappyXBModel.Instance.selectCSHeroWishID == 0 ? 0 : TreasureItemLibConfig.Get(HappyXBModel.Instance.selectCSHeroWishID).ItemID); CreateScroller(); if (HappyXBModel.Instance.selectWishListTab == 0) { shBtn.SelectBtn(); } else { csBtn.SelectBtn(); } } void CreateScroller() { int libID = qualityLibIDDict[HappyXBModel.Instance.selectWishListTab]; if (!TreasureSetConfig.Get((int)HappXBTitle.HeroCallAdvanced).WishLibSelect.ContainsKey(libID)) { Debug.LogError("寻宝库ID变更,程序请核对qualityLibIDDict"); return; } scroller.Refresh(); var list = TreasureItemLibConfig.GetWishIDList(libID); for (int i = 0; i < list.Count; i++) { if (i % 5 == 0) { scroller.AddCell(ScrollerDataType.Header, i); } } scroller.Restart(); } void AddHero(int quality) { SysNotifyMgr.Instance.ShowTip("HeroWishAdd"); HappyXBModel.Instance.selectWishListTab = quality == 4 ? 1 : 0; Display(); } void ShowHeroTip(int quality) { ItemTipUtility.Show(quality == 4 ? TreasureItemLibConfig.Get(HappyXBModel.Instance.selectCSHeroWishID).ItemID : TreasureItemLibConfig.Get(HappyXBModel.Instance.selectSHHeroWishID).ItemID); } void RefreshXBTypeInfo() { HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, 5, out HappyXBModel.Instance.selectSHHeroWishID, out int shWishCnt); HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, 4, out HappyXBModel.Instance.selectCSHeroWishID, out int csWishCnt); Display(); } void OnSelectWishHeroEvent() { shHero.Display(5, AddHero, ShowHeroTip, HappyXBModel.Instance.selectSHHeroWishID == 0 ? 0 : TreasureItemLibConfig.Get(HappyXBModel.Instance.selectSHHeroWishID).ItemID); csHero.Display(4, AddHero, ShowHeroTip, HappyXBModel.Instance.selectCSHeroWishID == 0 ? 0 : TreasureItemLibConfig.Get(HappyXBModel.Instance.selectCSHeroWishID).ItemID); scroller.m_Scorller.RefreshActiveCellViews(); } void SendSelectHero() { if (HappyXBModel.Instance.selectSHHeroWishID == 0 && HappyXBModel.Instance.selectCSHeroWishID == 0) { SysNotifyMgr.Instance.ShowTip("HeroWishAdd"); return; } var pack = new CA569_tagCSTreasureWishSelect(); pack.TreasureType = (int)HappXBTitle.HeroCallAdvanced; pack.WishIDList = new uint[] { (uint)HappyXBModel.Instance.selectSHHeroWishID, (uint)HappyXBModel.Instance.selectCSHeroWishID }; pack.WishCnt = 2; GameNetSystem.Instance.SendInfo(pack); CloseWindow(); } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetComponent(); _cell.Display(qualityLibIDDict[HappyXBModel.Instance.selectWishListTab], cell.index); } }