using System.Collections.Generic; using System.Linq; using Core.Language; using Excel2Json; using Fort23.UTool; using GameLogic.Bag; namespace Fort23.Mono { [UIBinding(prefab = "DaoYouLevelWidget")] public partial class DaoYouLevelWidget : UIComponent { private AccountFileInfo.DaoYouData daoYouData; public DaoyouLevelupConfig _daoyouLevelupConfig; List _widgetItems = new List(); private void Init() { } public override void AddEvent() { } public override void DelEvent() { } public override void AddButtonEvent() { Btn_Award.onClick.AddListener(() => { if (daoYouData.awardLevels.Contains(_daoyouLevelupConfig.ID) || daoYouData.favorabilityLv < _daoyouLevelupConfig.ID) { return; } List items = new List(); DaoyouModelConfig daoyouModelConfig = ConfigComponent.Instance.Get(daoYouData.id); for (var i = 0; i < _daoyouLevelupConfig.prizeID?.Length; i++) { items.Add(new ItemInfo(_daoyouLevelupConfig.prizeID[i], _daoyouLevelupConfig.prizeNum[i])); } if (daoyouModelConfig.EmotionLvforspecialGift.Contains(_daoyouLevelupConfig.ID)) { int index = daoyouModelConfig.EmotionLvforspecialGift.ToList().IndexOf(_daoyouLevelupConfig.ID); items.Add(new ItemInfo(daoyouModelConfig.specialGiftID[index], daoyouModelConfig.specialGiftNum[index])); } daoYouData.awardLevels.Add(_daoyouLevelupConfig.ID); if (items.Count > 0) { PlayerManager.Instance.BagController.AddItem(items); RewardsPanel.OpenPanel(items); } Text_Tips.gameObject.SetActive(true); AccountFileInfo.Instance.SavePlayerData(); }); } public async void CustomInit(AccountFileInfo.DaoYouData daoYouData, int configId) { this.daoYouData = daoYouData; _daoyouLevelupConfig = ConfigComponent.Instance.Get(configId); DaoyouModelConfig daoyouModelConfig = ConfigComponent.Instance.Get(daoYouData.id); Text_Level.text = configId.ToString(); Text_Name.text = LanguageManager.Instance.Text(_daoyouLevelupConfig.name); for (var i = 0; i < _daoyouLevelupConfig.prizeID?.Length; i++) { WidgetItem widgetItem = await UIManager.Instance.CreateGComponent(null, ItemRoot); widgetItem.InitWidget(new ItemInfo(_daoyouLevelupConfig.prizeID[i], _daoyouLevelupConfig.prizeNum[i])); _widgetItems.Add(widgetItem); } if (daoyouModelConfig.EmotionLvforspecialGift.Contains(configId)) { int index = daoyouModelConfig.EmotionLvforspecialGift.ToList().IndexOf(configId); WidgetItem widgetItem = await UIManager.Instance.CreateGComponent(null, ItemRoot); widgetItem.InitWidget(new ItemInfo(daoyouModelConfig.specialGiftID[index], daoyouModelConfig.specialGiftNum[index])); _widgetItems.Add(widgetItem); } //已经领取奖励 if (daoYouData.awardLevels.Contains(configId)) { Text_Tips.gameObject.SetActive(true); } else { //可以领取 if (daoYouData.favorabilityLv >= _daoyouLevelupConfig.ID) { foreach (var widgetItem in _widgetItems) { widgetItem.transform.RecoverColor(); } } //不能领取 else { foreach (var widgetItem in _widgetItems) { widgetItem.transform.Gray(); } } Text_Tips.gameObject.SetActive(false); } } public override void DormancyObj() { foreach (var widgetItem in _widgetItems) { UIManager.Instance.DormancyGComponent(widgetItem); } _widgetItems.Clear(); base.DormancyObj(); } } }