using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
///
/// 招募
///
public class HeroCallWin : UIBase
{
[SerializeField] Button ruleBtn;
[SerializeField] OwnItemCell ownItemCell;
[SerializeField] Button scoreBtn;
[SerializeField] Text scoreText;
[SerializeField] GameObject scoreTween;
[SerializeField] Toggle skipToggle;
[SerializeField] Button call1Btn;
[SerializeField] Image call1ItemIcon;
[SerializeField] Text call1Text;
[SerializeField] Text freeCDTime;
[SerializeField] Button call10Btn;
[SerializeField] Image call10ItemIcon;
[SerializeField] Text call10Text;
[SerializeField] Button closeBtn;
[SerializeField] Text callTip;
protected override void InitComponent()
{
closeBtn.AddListener(CloseWindow);
skipToggle.AddListener((value) =>
{
LocalSave.SetBool(HeroUIManager.skipKey, value);
});
ownItemCell.itemID = TreasureSetConfig.Get((int)HappXBTitle.HeroCallAdvanced).CostItemID;
call1Btn.AddListener(SendHeroCall);
call10Btn.AddListener(() =>
{
HeroUIManager.Instance.selectCallType = HappXBTitle.HeroCallAdvanced;
HeroUIManager.Instance.selectCallIndex = 1;
HappyXBModel.Instance.SendXBManyQuest((int)HappXBTitle.HeroCallAdvanced);
});
scoreBtn.AddListener(() =>
{
UIManager.Instance.OpenWindow();
});
ruleBtn.AddListener(() =>
{
UIManager.Instance.OpenWindow();
});
}
protected override void OnPreOpen()
{
HappyXBModel.Instance.RefreshXBTypeInfoAct += Refresh;
skipToggle.isOn = LocalSave.GetBool(HeroUIManager.skipKey, false);
Refresh();
}
protected override void OnPreClose()
{
HappyXBModel.Instance.RefreshXBTypeInfoAct -= Refresh;
}
public override void Refresh()
{
var funcSet = TreasureSetConfig.Get((int)HappXBTitle.HeroCallAdvanced);
var item = ItemConfig.Get(funcSet.CostItemID);
var IconKey = item.IconKey;
call1ItemIcon.SetOrgSprite(IconKey);
call10ItemIcon.SetOrgSprite(IconKey);
var itemCount = PackManager.Instance.GetItemCountByID(PackType.Item, funcSet.CostItemID);
int todayFreeCount = HappyXBModel.Instance.GetFreeCountToday((int)HappXBTitle.HeroCallAdvanced);
int dayMaxCount = HappyXBModel.Instance.GetDailyFreeCount((int)HappXBTitle.HeroCallAdvanced);
if (todayFreeCount < dayMaxCount)
{
call1Text.text = Language.Get("L1127") + (dayMaxCount - todayFreeCount) + "/" + dayMaxCount;
}
else
{
call1Text.text = Language.Get("L1100", item.ItemName, UIHelper.AppendColor(funcSet.CostItemCountList[0] > itemCount ? TextColType.Red : TextColType.LightWhite, funcSet.CostItemCountList[0].ToString()));
}
call10Text.text = Language.Get("L1100", item.ItemName, UIHelper.AppendColor(funcSet.CostItemCountList[1] > itemCount ? TextColType.Red : TextColType.LightWhite, funcSet.CostItemCountList[1].ToString()));
scoreText.text = UIHelper.GetMoneyCnt(51) + "/" + TreasureSetConfig.Get((int)HappXBTitle.HeroCallScore).CostMoneyList[0];
if (UIHelper.GetMoneyCnt(51) >= TreasureSetConfig.Get((int)HappXBTitle.HeroCallScore).CostMoneyList[0])
{
scoreTween.SetActive(true);
}
else
{
scoreTween.SetActive(false);
}
RefreshFreeTime();
//再招募{0}次后必得{1}武将
List qualityList = new List();
var needCount = HappyXBModel.Instance.GetNextXBCountForBigAward((int)HappXBTitle.HeroCallAdvanced, out qualityList);
List qualityStrList = new List();
for (int i = 0; i < qualityList.Count; i++)
{
qualityStrList.Add(UIHelper.AppendColor(qualityList[i], Language.Get("equipQualityFormat", Language.Get("CommonQuality" + qualityList[i]))));
}
callTip.text = Language.Get("HeroCall6", needCount, string.Join(Language.Get("L1130"), qualityStrList.ToArray()));
}
//每秒刷新免费CD的倒计时
float cdTime = 0;
void LateUpdate()
{
//每秒触发一次
cdTime += Time.deltaTime;
if (cdTime < 1) return;
cdTime = 0;
RefreshFreeTime();
}
void RefreshFreeTime()
{
if (HappyXBModel.Instance.IsHaveFreeXB((int)HappXBTitle.HeroCallAdvanced))
{
freeCDTime.SetActive(false);
}
else
{
freeCDTime.SetActive(true);
freeCDTime.text = Language.Get("L1128", TimeUtility.SecondsToHMS(TimeUtility.GetTodayRemainSeconds()));
}
}
void SendHeroCall()
{
HeroUIManager.Instance.selectCallType = HappXBTitle.HeroCallAdvanced;
HeroUIManager.Instance.selectCallIndex = 0;
if (HappyXBModel.Instance.IsHaveFreeXB((int)HappXBTitle.HeroCallAdvanced))
{
HappyXBModel.Instance.SendXBQuest((int)HappXBTitle.HeroCallAdvanced, 0, 1);
}
else
{
HappyXBModel.Instance.SendOneXBQuest((int)HappXBTitle.HeroCallAdvanced);
}
}
}