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