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