using System; 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; [SerializeField] Toggle autoToggle1; [SerializeField] Text itemCntText1; [SerializeField] Image itemIcon1; [SerializeField] Toggle autoToggle2; [SerializeField] Text itemCntText2; [SerializeField] Image itemIcon2; 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; InvestModel.Instance.onInvestUpdate += OnInvestUpdate; scroller.OnRefreshCell += OnRefreshCell; HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, 5, out HappyXBModel.Instance.selectSHHeroWishID, out int shWishCnt, out bool shAuto); HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, 4, out HappyXBModel.Instance.selectCSHeroWishID, out int csWishCnt, out bool cqAuto); Display(); } protected override void OnPreClose() { HappyXBModel.Instance.RefreshXBTypeInfoAct -= RefreshXBTypeInfo; scroller.OnRefreshCell -= OnRefreshCell; HappyXBModel.Instance.OnSelectWishHeroEvent -= OnSelectWishHeroEvent; InvestModel.Instance.onInvestUpdate -= OnInvestUpdate; } void OnInvestUpdate(int type) { Display(); } void Display() { bool isInvest = InvestModel.Instance.IsInvested(InvestModel.monthCardType); if (isInvest) { tip.text = Language.Get("HeroCall17"); } else { tip.text = Language.Get("HeroCall7", HappyXBModel.wishMaxOutCnt) + Language.Get("HeroCall18"); } int shHeroID = 0; if (HappyXBModel.Instance.selectSHHeroWishID == -1) { shHeroID = -1; } else if (HappyXBModel.Instance.selectSHHeroWishID == 0) { shHeroID = 0; } else { shHeroID = TreasureItemLibConfig.Get(HappyXBModel.Instance.selectSHHeroWishID).ItemID; } int csHeroID = 0; if (HappyXBModel.Instance.selectCSHeroWishID == -1) { csHeroID = -1; } else if (HappyXBModel.Instance.selectCSHeroWishID == 0) { csHeroID = 0; } else { csHeroID = TreasureItemLibConfig.Get(HappyXBModel.Instance.selectCSHeroWishID).ItemID; } shHero.Display(5, AddHero, ShowHeroTip, shHeroID); csHero.Display(4, AddHero, ShowHeroTip, csHeroID); CreateScroller(); if (HappyXBModel.Instance.selectWishListTab == 0) { shBtn.SelectBtn(); } else { csBtn.SelectBtn(); } ShowToggle(); } void ShowToggle() { var shData = HappyXBModel.Instance.GetWishDataByQuality(5); int itemID = HappyXBModel.Instance.GetWishCardItemID(5); autoToggle1.isOn = shData.auto; itemIcon1.SetItemSprite(itemID); itemCntText1.text = UIHelper.ShowUseItem(PackType.Item, itemID, 1); var csData = HappyXBModel.Instance.GetWishDataByQuality(4); itemID = HappyXBModel.Instance.GetWishCardItemID(4); autoToggle2.isOn = csData.auto; itemIcon2.SetItemSprite(itemID); itemCntText2.text = UIHelper.ShowUseItem(PackType.Item, itemID, 1); } void CreateScroller() { int libID = HappyXBModel.Instance.selectToLibIDDict[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, out bool shAuto); HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, 4, out HappyXBModel.Instance.selectCSHeroWishID, out int csWishCnt, out bool cqAuto); Display(); } void OnSelectWishHeroEvent() { int shHeroID = 0; if (HappyXBModel.Instance.selectSHHeroWishID == -1) { shHeroID = -1; } else if (HappyXBModel.Instance.selectSHHeroWishID == 0) { shHeroID = 0; } else { shHeroID = TreasureItemLibConfig.Get(HappyXBModel.Instance.selectSHHeroWishID).ItemID; } int csHeroID = 0; if (HappyXBModel.Instance.selectCSHeroWishID == -1) { csHeroID = -1; } else if (HappyXBModel.Instance.selectCSHeroWishID == 0) { csHeroID = 0; } else { csHeroID = TreasureItemLibConfig.Get(HappyXBModel.Instance.selectCSHeroWishID).ItemID; } shHero.Display(5, AddHero, ShowHeroTip, shHeroID); csHero.Display(4, AddHero, ShowHeroTip, csHeroID); 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)Math.Max(0, HappyXBModel.Instance.selectSHHeroWishID), (uint)Math.Max(0, HappyXBModel.Instance.selectCSHeroWishID) }; pack.WishCnt = 2; pack.WishCardUseLibIDList = new ushort[] { (ushort)(autoToggle1.isOn ? HappyXBModel.Instance.qualityToLibIDDict[5] : 0), (ushort)(autoToggle2.isOn ? HappyXBModel.Instance.qualityToLibIDDict[4] : 0) }; pack.WishCardUseCnt = (byte)pack.WishCardUseLibIDList.Length; GameNetSystem.Instance.SendInfo(pack); CloseWindow(); } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetComponent(); _cell.Display(HappyXBModel.Instance.selectToLibIDDict[HappyXBModel.Instance.selectWishListTab], cell.index); } }