using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
/// <summary>
|
/// 招募心愿
|
/// </summary>
|
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<HeroCallHopeLineCell>();
|
_cell.Display(HappyXBModel.Instance.selectToLibIDDict[HappyXBModel.Instance.selectWishListTab], cell.index);
|
|
}
|
|
|
}
|