using System.Collections.Generic; using System.Linq; using Core.Language; using Excel2Json; using Fort23.Core; using Fort23.UTool; using Utility; namespace Fort23.Mono { [UIBinding(prefab = "SentimentInfoPanel")] public partial class SentimentInfoPanel : UIPanel { AccountFileInfo.SentimentProperty curretnSentimentProperty; private AccountFileInfo.SentimentData sentimentData; List sentimentEffectWidgets = new List(); private List _sentimentEffectConfigs; private List currentGroupSentimentEffectConfigs; private SentimentEffectWidget currentSentimentEffectWidget; private void Init() { isAddStack = false; isPopUi = true; IsShowAppBar = false; } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); Btn_LingWu.onClick.AddListener(() => { if (curretnSentimentProperty == null) { return; } if (curretnSentimentProperty.level >= currentGroupSentimentEffectConfigs.Count) { TipMessagePanel.OpenTipMessagePanel("已经达到最大等级"); return; } int level = curretnSentimentProperty.level <= 0 ? 1 : curretnSentimentProperty.level; int conFigId = curretnSentimentProperty.groupId * 100 + level; SentimentEffectConfig sentimentEffectConfig = ConfigComponent.Instance.Get(conFigId); //扣除道具 // sentimentEffectConfig.upConstItemId. // s curretnSentimentProperty.level++; AccountFileInfo.Instance.SavePlayerData(); UpdateUi(); currentSentimentEffectWidget.CustomInit(curretnSentimentProperty); }); } public async override CTask AsyncInit(object[] uiData) { sentimentData = uiData[0] as AccountFileInfo.SentimentData; _sentimentEffectConfigs = ConfigComponent.Instance.GetAll().ToList(); SentimentEffectWidget sentimentEffectWidget = await UIManager.Instance.CreateGComponentForObject(MainSentimentEffectWidget, null); sentimentEffectWidget.CustomInit(sentimentData.mainSentiment); sentimentEffectWidget.OnClick = OnClick; foreach (var sentimentDataSentimentProperty in sentimentData.sentimentProperties) { SentimentEffectWidget sentimentEffectWidget1 = await UIManager.Instance.CreateGComponent(null, Content); sentimentEffectWidget1.CustomInit(sentimentDataSentimentProperty); sentimentEffectWidget1.OnClick = OnClick; sentimentEffectWidgets.Add(sentimentEffectWidget1); if (currentSentimentEffectWidget == null) { sentimentEffectWidget1.OnPointerClick(); } } return await base.AsyncInit(uiData); } private void UpdateUi() { int level = curretnSentimentProperty.level <= 0 ? 1 : curretnSentimentProperty.level; int conFigId = curretnSentimentProperty.groupId * 100 + level; SentimentEffectConfig sentimentEffectConfig = ConfigComponent.Instance.Get(conFigId); currentGroupSentimentEffectConfigs = _sentimentEffectConfigs.Where(se => se.groupId == sentimentEffectConfig.groupId).ToList(); Text_Name.text = LanguageManager.Instance.Text(sentimentEffectConfig.name); Text_Desc.text = UtilTools.GetString(LanguageManager.Instance.Text(sentimentEffectConfig.massge), sentimentEffectConfig.effectVale); Text_Level.text = $"当前层 ;{curretnSentimentProperty.level}/{currentGroupSentimentEffectConfigs.Count}"; } private void OnClick(ItemWidgetBasic obj) { SentimentEffectWidget sentimentEffectWidget = obj as SentimentEffectWidget; currentSentimentEffectWidget = sentimentEffectWidget; curretnSentimentProperty = sentimentEffectWidget.sentimentProperty; UpdateUi(); } public static async CTask OpenPanel(AccountFileInfo.SentimentData sentimentData) { await UIManager.Instance.LoadAndOpenPanel(null, uiData: new object[] { sentimentData }); } public override void Close() { foreach (var sentimentEffectWidget in sentimentEffectWidgets) { UIManager.Instance.DormancyGComponent(sentimentEffectWidget); } sentimentEffectWidgets.Clear(); currentSentimentEffectWidget = null; curretnSentimentProperty = null; base.Close(); } } }